使用attach命令附加到目标线程: 在GDB提示符下,使用attach命令后接目标线程的ID,将GDB附加到该线程。 gdb (gdb) attach <thread_id> 例如,如果目标线程的ID是29184,则命令为: gdb (gdb) attach 29184 确认GDB已成功附加到目标线程: 如果GDB成功附加到目标线程,你会看到类似“Attaching to process <th...
用gdb attach main调试main进程。main线程启动的两个新线程id,如下图所示。 用info threads命令查看所有线程。最前面的*号表示当前线程。 用thread n命令切换线程,用bt命令检查每个线程的栈信息。可以看到线程一直阻塞在main.cpp的第10行,而第10行正是mu.lock()加锁的行,同样的方法可以找到另一个线程阻塞的位置。
也可执行:$ gdb main 18786,与gdb attach 18786相同。 常用的命令如下: 1. bt:查看函数调用栈的所有信息,当程序执行异常时,可通过此命令查看程序的调用过程; 2. info threads:显示当前进程中的线程; 3. thread id:切换到具体的线程id,一般切换到具体的线程后再执行bt等操作。 首先执行info threads,发现共有3...
1. gdb attach: 使用gdb附加到正在运行的进程。其中,是要调试的进程的进程ID。 2. info threads: 显示当前进程中的所有线程信息。会列出线程的ID、状态、当前所在位置等信息。 3. thread: 切换到指定线程。通过线程ID来指定要切换的线程。 4. thread apply: 在所有线程上执行指定的命令。可以在多个线程之间同时...
Attach到目标进程:使用gdb attach <PID>命令连接到目标进程。列出所有线程:使用info threads命令列出当前...
1.将进程附加到gdb调试器当中,查看是否创建了新线程:gdb attach 主线程ID 2.查看进程:info inferiors 3.查看线程:info threads 4.查看线程栈结构:bt 5.切换线程:thread n 四、利用gdb调试多线程 1.设置断点与查看断点: break 行号、函数名和info b ...
命令“gdb attach pid”附着在进程上,“detach”可脱离调试的进程 root@wangqi:/home/wangqi/winshare/C-Thread-Pool# gcc example1.c -lpthread -o exam root@wangqi:/home/wangqi# ps aux | grep exam root 5677 0.0 0.0 76380 844 pts/2 S+ 18:53 0:00 ./exam root@wangqi:/home/wangqi# gdb...
2) gdb -> attach process_id 正在运行中的后台程序突然卡在了某个地方,先ps再gdb/attach 3) gdb prog_name core 程序core掉了 三种方式对一个程序进行调试; 1. thread——gdb 多线程调试命令: info threads: 显示当前进程中的线程; thread thread_no: 进入线程xx,通常紧接而来的是 bt/f 命令; ...
2.gdb attach pid。使用gdb attach可以调试正在运行的进程,这对数据不正常的程序很有效。 threads查看具体的线程id。然后去日志查看具体的线程id 4.thread x切换线程到具体的线程 5.在线程中设置断点。 6.set scheduler-locking off 让所有的线程运行.gdb默认调试状态下只有当前的线程在运行,所以先要让整个程序运行...