在使用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发布于 2014-07-01 16:07:29
您没有说明您使用的是哪个版本的gdb。
对于本地Linux (即不使用gdbserver),gdb 7.3中添加了线程名称的打印。因此,升级到至少该版本,您应该看到它的工作。
对gdbserver的支持是计划中的,但尚未实现。对其他平台的支持取决于志愿者。
https://stackoverflow.com/questions/24497287
复制相似问题