Linux下,使用GDB调试程序的方法

在Linux下调试程序一般用GDB来执行。
这里简要介绍一下是否gdb调试程序的方法:
(1)进入gdb调试:
gdb + 已经编译通过的可执行程序 -》 就进入调试模式。
例如:gdb MiddlePublisher
(2)r + 运行时的参数         -》 开始运行可执行程序。
例如 r -lxml2 -f refile
(3)b + 断点               -》设置调试的断点。
两种:一种是:b CMSTask.cpp:200      表示在CMSTask.cpp文件的第200行设置断点。
     另一种:b TaskManager::buildPubWinTask 表示在执行buildPubWinTask这个函数的时候停止。
(4)取消断点:
   dis 1          表示取消第一个断点
   dis 2          表示取消第二个断点
(5)查看设置断点信息:
    info   b
(6)在断点停止处查看所在代码的详细信息:
    l
(7)可以在gdb中直接编译,然后再重新运行时,gdb会直接执行新编译好的可执行程序。
例如:直接在gdb下执行make后再重庆运行。
(8)跟进一个函数:s
如果设置的断点是在一个函数入口。到达该断点时,键入s就可以进入该函数内部进行调试。如果有多个函数就多次键入S来进入内部的函数。
(9)单步执行:n
例如:直接在gdb下键入n,进行单步执行
(10)继续执行:c
例如:直接在gdb键入c,可以在断点停止后继续执行。
如果断点是一个循环,则可以继续执行一个循环,再停止断点上面。

PS:
1、在SecureCRT远程登录界面上开启多个窗口。在窗口之间切换时用:Alt+1,Alt+2.....表示切换到第1个,第2个窗口。
2、同样在在SecureCRT远程登录界面上要粘贴复制好的内容用:Shift+Insert
3、vim一个文件的妙用:
(1)首先用vim打开一个文件,再在命令行下键入“:vsplit ***”在同一个窗口打开另一个文件。×××表示另一个文件。
(2)打开后,用Ctrl+W按两次在两个窗口之间切换。
(3)如果要关掉一个其中一个窗口,就切换到那个窗口,键入“:close”就可以了。
(4)复制某一行,先按y1,再转到复制目的地按p。如果复制多行先在复制源地第一行按y2,然后回车,再把光标移动到最后一行,按回车。最后到复制目的地按p,就可以了

发布了109 篇原创文章 · 获赞 5 · 访问量 64万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章