【问题标题】:gdb info thread print thread name [duplicate]gdb info thread打印线程名称[重复]
【发布时间】:2014-06-30 19:14:03
【问题描述】:

在使用gdb调试多线程代码的过程中,需要从gdb中查找线程名,以便更快定位错误。

例如下面的 gdb 命令只打印线程 1,2,3...等,但我希望我不能线程 A,B,C... 这意味着我需要列出线程名称。

gdb 命令是否可以。

(gdb) info threads
  15 Thread 8725  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:13
  14 Thread 8726  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:13
  13 Thread 8730  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:13
  12 Thread 13328  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  11 Thread 13330  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  10 Thread 13331  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  9 Thread 8711  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  8 Thread 13334  nanosleep () at bionic/libc/arch-arm/syscalls/nanosleep.S:13
  7 Thread 8722  nanosleep () at bionic/libc/arch-arm/syscalls/nanosleep.S:13
  6 Thread 8724  nanosleep () at bionic/libc/arch-arm/syscalls/nanosleep.S:13
  5 Thread 8710  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  4 Thread 8712  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51
  3 Thread 8723  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:13
  2 Thread 8721  read () at bionic/libc/arch-arm/syscalls/read.S:14
* 1 Thread 8709  __futex_wait () at bionic/libc/arch-arm/bionic/futex_arm.S:51

【问题讨论】:

标签: gdb


【解决方案1】:

你没有说你使用的是什么版本的gdb。

对于原生 Linux(即不使用 gdbserver),在 gdb 7.3 中添加了线程名称的打印。所以,至少升级到那个版本,你应该会看到它工作正常。

已计划支持 gdbserver,但尚未实施。 对其他平台的支持取决于志愿者。

【讨论】:

  • android gdb 现在可以使用了吗?
猜你喜欢
  • 1970-01-01
  • 2011-10-16
  • 2012-02-15
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 2015-02-27
相关资源
最近更新 更多