直接调试目标程序:gdb ./hello_server 附加进程id:gdb attach pid 调试core文件:gdb filename corename 3. 退出GDB 可以用命令:q(quit的缩写)或者 Ctr + d 退出GDB。 如果GDB attach某个进程,退出GDB之前要用命令 detach 解除附加进程。 4. 常用命令 5. 常用命令示例 5.1 run命令 默认情况下,以gdb ....
一、启动调试 gdb <program> 启动程序进行调试 gdb ./bin/chat_server gdb --args ./bin/chat_server -c conf/cache_server.conf 在 UNIX 下用 ps 查看正在运行的程序的 PID (进程 ID), 然后用 gdb <program> PID 格式挂接正在运行的程序。 gdb attach <pid> 调试一个已经运行服务程序 gdb ./bin/ch...
gdb attach pid:程序已经运行后,可使用attach跟踪进程,attach目标进程后,调试器会暂停下来,需要continue才继续,停止调试后使用detach命令分离调试器,quit结束 gdb filename corename:默认不开启core,需要设置core文件大小,使用ulimit -a可查看core文件大小,使用ulimit -c [n]设置core文件最大n字节,使用ulimit -c unlim...
在Linux上,执行有多线程的程序时,当程序执行退出操作时有时会遇到卡死现象,如果程序模块多,代码量大,很难快速定位,此时可试试gdb attach方法。测试代码main.cpp如下,这里为了使程序退出时产生卡死现象,在第51行时push线程sleep 100分钟:#include <stdio.h> #include <thread> ...
(gdb) gdb attach 进程名 3.2 调试线程 (gdb) info thread //调试已运行的进程下再列出线程 (gdb) thread 线程号 //切换至线程 3.3 查看相关信息 (gdb) info thread //列出线程 (gdb) info register //列出寄存器(gdb) info frame //列出栈帧 ...
(gdb) gdb attach 进程名 1. 2. 3.2 调试线程 (gdb) info thread //调试已运行的进程下再列出线程 (gdb) thread 线程号 //切换至线程 1. 2. 3.3 查看相关信息 (gdb) info thread //列出线程 (gdb) info register //列出寄存器 (gdb) info frame //列出栈帧 ...
如果GDB attach某个进程,退出GDB之前要用命令 detach 解除附加进程。 GDB常用命令 run命令 默认情况下,以 gdb ./filename 方式启用GDB调试只是附加了一个调试文件,并没有启动这个程序,需要输入run命令(简写为r)启动这个程序 continue命令 当GDB触发断点或者使用 Ctrl + C 命令中断下来后,想让程序继续运行,只要输入...
GDB提供了两种方式来调试正在运行的进程:一种是在GDB命令行上指定进程的PID,另一种是在GDB中使用“attach”命令。例如,开发人员可以先启动debugme程序,让其开始等待用户的输入。示例如下: #./debugme Enter a string to count words: 接下去在另一个虚拟控制台中用下面的命令查出该进程对应的进程号: ...
GDB提供了两种方式来调试正在运行的进程:一种是在GDB命令行上指定进程的PID,另一种是在GDB中使用“attach”命令。例如,开发人员可以先启动debugme程序,让其开始等待用户的输入。示例如下: #./debugme Enter a string to count words: 1. 2. 接下去在另一个虚拟控制台中用下面的命令查出该进程对应的进程号: ...