标签: debugging

取消认领设备

所以我正在使用 Ubuntu 并尝试使用一些我以前遇到过一些问题的硬件。

之前的问题是,制造我的硬件的公司将其内部零件出售给了另一家制造具有相同 ID 的不同硬件的公司。有人好心地为它制作了一个随 Ubuntu 一起提供的驱动程序,但阻止了我设备的驱动程序工作。在我的上一个系统上,我只是跟踪了内核模块并禁用了它。

我收到与我以前的机器相同的消息:

无法声明设备(Vid:0x2457,Pid:0x1002,iface:0)

但是插入设备似乎并没有像以前那样在 /dev 中创建一个条目。如何找到我的设备的所有权?我假设 dmesg:

USB 4-1:使用 ohci_hcd 和地址 16 的新全速 USB 设备

只是说它正在被检测到,并且不是 ohci 阻止了我的访问。

debugging kernel-modules devices

5
推荐指数
1
解决办法
764
查看次数

/proc/self/stack 和 pstack 的输出有什么区别?

我一直在查看 /proc 的文档,并且“堆栈”对象是 proc 中的一个新对象,我还查看了内核提交以创建它——但是文档没有详细说明 / proc/self/stack 文件——并且因为我直觉地认为它是进程的实际堆栈——但是旧pstack工具给出了不同(并且更可信)的输出。

因此,作为 bash 堆栈的示例

$ cat /proc/self/stack 
[<ffffffff8106f955>] do_wait+0x1c5/0x250
[<ffffffff8106fa83>] sys_wait4+0xa3/0x100
[<ffffffff81013172>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
Run Code Online (Sandbox Code Playgroud)

并且,使用 pstack

$ pstack $$
#0  0x00000038cfaa664e in waitpid () from /lib64/libc.so.6
#1  0x000000000043ed42 in ?? ()
#2  0x000000000043ffbf in wait_for ()
#3  0x0000000000430bc9 in execute_command_internal ()
#4  0x0000000000430dbe in execute_command ()
#5  0x000000000041d526 in reader_loop ()
#6  0x000000000041ccde in main ()
Run Code Online (Sandbox Code Playgroud)

地址不同,显然符号根本不一样......

有没有人对差异和/或描述 /proc-stack 中实际显示内容的文档有解释?

debugging kernel monitoring proc linux-kernel

5
推荐指数
1
解决办法
3886
查看次数

如何检测可能的硬件错误?

我在 HP Pavilion dv7 笔记本电脑上运行 Debian Wheezy,它时不时地死机,需要重新启动。有一次它甚至没有加载操作系统,但不是我在使用它,所以我不知道显示了什么错误。在以前的 Windows 7 安装中,它经常无法加载 Windows,让用户进入“尝试修复”屏幕,这会在几分钟内执行某些操作,然后说 Windows 无法解决问题。

这让我认为存在硬件问题,我想知道是否有什么/var/log地方或其他地方可以提供有关正在发生的事情的一些信息,或者是否可以运行任何测试以及我应该寻找什么。

我发出

grep -i "error" /var/log
Run Code Online (Sandbox Code Playgroud)

完整的输出在这里。我能理解的唯一一条线,我认为可能与问题有关的是

/var/log/dmesg.0:[   11.632723] [drm:radeon_pci_probe] *ERROR* radeon kernel modesetting for R600 or later requires firmware-linux-nonfree.
Run Code Online (Sandbox Code Playgroud)

lspci | grep -i vga
Run Code Online (Sandbox Code Playgroud)

退货

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Whistler XT [AMD Radeon HD 6700M Series]
Run Code Online (Sandbox Code Playgroud)

并且正在使用System > …

linux logs debugging hardware debian

5
推荐指数
2
解决办法
4万
查看次数

在 Chrome 中安装调试 Flash 播放器?

我正在尝试调整此处此处此处的说明,以便在我的 Ubuntu 13.04 安装上安装 Flash 播放器的调试版本,以便 Chrome 30.0.1599.66 可以使用它。

有趣的是,我似乎已经安装了官方的 Adob​​e flash 插件并且可以被 Chrome 使用,所以问题从“安装 flash”变成了“用调试器版本替换常规 flash”。

在此处输入图片说明

所以我需要替换libflashplayer.so从 Adob​​e下载的那个。听起来很简单。

我选择了这个文件(Linux Flash Player 11.2 Plugin content debugger),解压它并按照指示安装了 Flash Player Local Settings 配置文件。

然后我替换/usr/lib/flashplugin/installer/libflashplayer.so为调试器安装中包含的版本,并重新启动 Chrome。令我惊讶的是,第二个 Adob​​e Flash Player 列表chrome://plugins消失了!

在此处输入图片说明

就好像 Chrome 出于某种原因不喜欢调试器插件一样。我尝试了各种方法来让调试器插件出现,但无济于事:

  • chmod +rx libflashplayer.so
  • nspluginwrapper -i libflashplayer.so(结果出错no appropriate viewer found for libflashplayer.so
  • mkdir /opt/google/chrome/plugins; mv libflashplayer.so /opt/google/chrome/plugins

如何让 Chrome 识别 …

debugging ubuntu chrome adobe-flash

5
推荐指数
1
解决办法
4735
查看次数

找出可执行文件在启动时读取哪些(配置)文件的方法

如果启动,找出可执行文件读取哪些(配置)文件的聪明方法是什么?例如snmpdsshd。一种选择可能是检查手册页上的CONFIGURATION FILESFILES部分。我认为可以使用的另一个方法是跟踪系统调用,但至少在snmpd这种情况下,这似乎不起作用:

root@vserver:~# strace 2>&1 /usr/sbin/snmpd | grep snmpd.conf
root@vserver:~# 
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,stat命令也无济于事,因为文件访问时间没有更新。如果它已更新,则可以通过执行find /etc/ -type f -amin 1. 还有其他方法可以找出可执行文件在启动时读取哪些(配置)文件?

debugging files daemon

5
推荐指数
1
解决办法
4291
查看次数

linux mint 挂起 - 如何找到原因?

我的 Linux Mint 系统(17 Cinnamon,lenovo g565)在工作期间经常挂掉(比如一天 2-4 次)。它通常看起来像一个白色或黑色的屏幕(如果盖子关闭,则关闭)。CPU在这期间似乎有点热(但我昨天清理了风扇以排除过热原因,正常工作时大约为50-55 C)。热键不起作用,我只是关闭电源。在挂起之前检查系统日志并没有给我特定的重复模式来检查。但无论如何,这里有一些(在挂起之前),在消除 nl80211 问题之前还有一些。关于这个问题,我还有两个问题 -第一第二. UPD:这似乎不是用户软件问题 - 我在启动后离开了车站,但它仍然在几个小时内挂起。我应该怎么做才能做出更具体的诊断并消除挂起的问题?我应该检查任何日志,诊断工具?

linux logs debugging linux-mint freeze

5
推荐指数
1
解决办法
449
查看次数

在 Debian 上调试的源代码位置?

从 Debian 的DebugPackage,我知道在/usr/lib/debug创建两部分可执行文件(即,剥离可执行文件的符号并将它们放在单独的文件中)时,可执行文件的调试信息文件会进入。

但是,符号文件将引用源文件,我看不到源文件应该放在哪里。在 Red Hat/Fedora 上,我知道它们位于/usr/src/debug(根据 Fedora 的Packaging:Debuginfo)。

在 Debian 上,我在哪里放置用于调试的源文件?


一个具体的例子是 Crypto++。我有一个补丁,它GNUMakefile添加了以下内容:

IS_DEBIAN = $(shell uname -a 2>&1 | $(EGREP) -i -c "debian|ubuntu|mint")
...

# https://wiki.debian.org/DebugPackage
ifeq ($(IS_DEBIAN),1)
  DEBUG_SYM_DIR ?= /usr/lib/debug/cryptopp
  DEBUG_SRC_DIR ?= /usr/src/debug/cryptopp
endif
...
Run Code Online (Sandbox Code Playgroud)

然后有一个看起来像这样的符号配方:

symbol symbols:
    $(MKDIR) -p $(DEBUG_SYM_DIR) $(DEBUG_SRC_DIR)
    -objcopy --only-keep-debug cryptest.exe cryptest.exe.debug
    -objcopy --only-keep-debug libcryptopp.so libcryptopp.so.debug
    -strip --strip-debug --strip-unneeded cryptest.exe
    -strip --strip-debug --strip-unneeded libcryptopp.so
    -$(CP) cryptest.exe.debug $(DEBUG_SYM_DIR)/
    -$(CP) libcryptopp.so.debug $(DEBUG_SYM_DIR)/
    -objcopy --add-gnu-debuglink=$(DEBUG_SYM_DIR)/cryptest.exe.debug cryptest.exe …
Run Code Online (Sandbox Code Playgroud)

source debugging debian

5
推荐指数
1
解决办法
2105
查看次数

如何在linux中更改console_loglevel?

我在多个地方读到过(例如在这里http://elinux.org/Debugging_by_printing),您可以通过将一个整数回显到 /proc/sys/kernel/printk 来更改控制台日志级别。如果那行得通,第一个整数不应该更改为下面的 5 吗?

[root@localhost printk]# cat /proc/sys/kernel/printk
4   4   1   7
[root@localhost printk]# echo 5>/proc/sys/kernel/printk

[root@localhost printk]# cat /proc/sys/kernel/printk
4   4   1   7
Run Code Online (Sandbox Code Playgroud)

我在多个系统上尝试过这个,但在其中任何一个系统上都没有改变!

linux debugging kernel proc

5
推荐指数
1
解决办法
2万
查看次数

“rcu_preempt 检测到 CPU/任务停顿”消息似乎继续

我的电路板继续显示以下消息。

终端没有任何输入。

我知道以下消息是怎么回事?(T, g, c, q ...)

造成这种现象的原因是什么?

我该如何解决这个现象?

INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 0, t=3936547 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 2, t=3972552 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 1, t=4008557 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 1, t=4044562 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { …
Run Code Online (Sandbox Code Playgroud)

cpu debugging kernel linux-kernel cpu-frequency

5
推荐指数
1
解决办法
2万
查看次数

如何在 Debian 启动期间激活超详细模式(调试模式)?

在 Debian 上,如何在启动期间激活额外的详细信息?我删除了quiet参数并尝试添加,debug但没有帮助。

我的问题是我的键盘需要 2-3 分钟才能激活,因此它极大地减慢了我的启动速度,因为我需要解锁一个分区。我想在我的键盘被激活时弹出消息,但删除quiet不会打印它。

boot debugging kernel debian dmesg

5
推荐指数
1
解决办法
1万
查看次数