几天前,当我同时释放两个按钮时,我的鼠标按钮释放开始有时无法被识别。因此,一个按钮的逻辑状态卡在“按下”状态,导致恼人的意外操作,直到我再次按下它来重置它。
我可以重现监视鼠标事件的问题xev(输出有时不显示预期的按键释放事件)。我无法通过监视事件来重现该问题/sys/kernel/debug/usb/usbmon(输出始终与现实一致)。
因此,故障显然出在 X11 以下但 USB 以上的某个抽象软件组件上。
可能是什么原因造成的?我怎样才能进一步缩小范围?
以下所有操作都是无效操作:
echo bash | bash
echo dash | dash
echo "bash -c bash" | bash
echo "dash -c dash" | dash
Run Code Online (Sandbox Code Playgroud)
为什么?例如,对于第一行,我假设它会创建一个 bash 实例,然后它会创建另一个等待输入的 bash 实例。但它不等待输入;它退出。父 bash 也退出。所以两个 bash 实例都退出了,我又回到了我从中启动这些命令的任何 shell 实例。我哪里弄错了?
我正在调试这个引发异常的程序。这使得我的调试器寻找一些源代码,例如../sysdeps/unix/sysv/linux/raise.c- 但未能找到它。
现在,我意识到我没有必要拥有这些资源,但我仍然希望它们在那里。
我正在开发 Devuan Chimaera GNU/Linux 系统。
对我来说,让这些源可用并可由 gdb 定位的最简单的方法是什么?
假设我使用这个命令:
ssh -vvv user@server
Run Code Online (Sandbox Code Playgroud)
我得到与此类似的输出:
send packet: type 21
ssh_set_newkeys: mode 1
receive packet: type 6
SSH2_MSG_SERVICE_ACCEPT received
receive packet: type 51
Permission denied (publickey,password)
Run Code Online (Sandbox Code Playgroud)
packet-types?ssh packet type51,但一定有一个地方types列出了所有内容ssh verbose mode,您是从哪里学到的?感谢您的帮助 :)
我来自 Ubuntu,当事情崩溃时,我可以收集相关信息并提交错误报告。在应用程序崩溃后,在 Arch Linux 中是否有一种简单或首选的方法来执行此操作?
我知道如何使用 gdb 的基础知识。但我想学习一些使用 gdb 的高级调试技术。什么是最好的资源——书籍、博客、教程——你们中的任何人都经常使用。我确实看过这个问题:在 xcode 中学习高级调试技术 GDB 的技巧或资源,但我正在寻找的是 GDB 等效于以下内容:
我明白这是主观问题。但是有很多本质上非常相似的问题(例如The Definitive C++ Book Guide and List),这里没有问这个问题。如果我错过了重复的内容,请将其放在评论中并关闭此问题。
当我在设备(如gdbserver :2345 myapp)上运行 gdbserver 时,gdbserver 完全阻止终端。添加 & 符号&或按下都不会^z使其在后台运行。我还检查过:它在 Kubuntu 上也可以重现。
我确实需要使用 shell 命令,而且由于我不知道如何通过 gdbserver 执行这些命令,所以在它运行后我感觉自己瘫痪了。
一位同事最近向我介绍bash -x了调试我的 bash 脚本而不走echo $foo路线。
$ bash -x hello-world.sh
+ echo 'Hello World'
Hello World
Run Code Online (Sandbox Code Playgroud)
在内部——bash 如何做到这一点?我检查了man bash它(似乎没有?)-x在调用解释器时提到了这个标志。我主要是在寻找将在-x环境中调试和不调试的概述,或任何其他问题。
我正在尝试使用内置的 PHP linter 解析 PHP 文件的递归目录,其工作方式如下:
$ php -l good.php
No syntax errors detected in good.php
$ php -l bad.php
PHP Parse error: syntax error, unexpected ''foo'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in bad.php on line 3
Errors parsing bad.php
Run Code Online (Sandbox Code Playgroud)
我们可以看到,通过 linting 的文件No syntax errors输出包含Errors parsing.
我看到我在当前目录中递归地有 12147 个 PHP 文件,但是 PHP linter 只输出七行:
$ find . -name \*.php -print0 | xargs -0 ls -l | wc -l
12147
$ find . -name \*.php -print0 | xargs -0 …Run Code Online (Sandbox Code Playgroud) 我正在将一些调试信息转储到我tail -f用来监视的文本文件中。
有没有一种工具可以让我将这些tail -f数据通过管道传输到能够使用正则表达式命令搜索屏幕上的文本,例如在 vim 中搜索?