http://blog.youkuaiyun.com/win_lin/article/details/7515588
1. 编译时使用-g打开调试。-O 0关闭优化,使调试时可以和源码对应。 2. r 启动调试,后面带运行参数。例如: r --debug --config /etc/fvss/fvss.conf r === run 3. 设置断点: b PSService.cpp:56 进入该文件后,可以设置断点到函数: b CPSService::Instance b === break 4. 删除断点: clear 删除当前行的断点。 delete 删除指定编号的断点,默认删除所有断点。 5. 执行方式: n 单独执行,不进入子函数内部。 s 执行进入子函数内部。 c 继续执行到下一个断点。 u 执行到某行。 jump 跳到某行执行。 return 中止当前执行函数,返回并停在上个调用的函数。可加表达式表示函数的返回结果。 finish 执行完当前函数,返回并停在上个调用的函数。 u === until n === next s === step c === continue 6. 查看: i s 查看调用堆栈。 p pServiceHost 打印变量的值。 bt === i s I === info f === frame 7. 查看源码: CTRL+X+A 进入和退出文本界面模式。 l 打印源代码。 8. 源码的搜索目录: cd /home/winlin/fmsoss/src/fvss 改变当前目录到该目录。 directory /home/winlin/fmsoss/src/fvss 将目录添加到搜索目录。 9. 查看变量的值: p i 打印变量。 p === print p i=10 设置变量的值 set i=10 设置变量的值 10. 多线程调试: i threads 查看程序所有的线程。 thread threadno 切换到某个线程。 11. 调用函数: call function(arg) 可以使用该命令调用某个函数。 12. 调用程序: shell ls 调用shell命令启动程序。 13. 设置print打印的长度: set print elements 0 14. 设置进入fork的子进程: set follow-fork-mode child 15. 忽略某个信号,譬如实时信号35: handle SIG35