美文网首页
GDB 调试

GDB 调试

作者: 林海畅游 | 来源:发表于2018-10-26 18:08 被阅读0次

1.GDB 调试的应用场景

前提:在编译时加入-g选项,把调试信息加到可执行文件中,例如g++ -g hello.cpp –o hello或是在CMakeLists.txt文件的编译参数中加入-g,常见的应用如下:

  • gdb <program>
    program也就是你的执行文件,一般在当前目录下

  • gdb <program> core
    用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

  • gdb <program> <PID>
    如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试它。program应该在PATH环境变量中搜索到。
    参见:https://www.cnblogs.com/chaoyazhisi/p/5396096.html,本文暂不讨论此应用

    作者:analanxingde
    链接:https://www.jianshu.com/p/577241d6c652
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

1.1 调试binary --- 可执行文件

binary文件必须以debug形式编译,cmake -DCMAKE_BUILD_TYPE=Debug ..

gdb ./test(可执行文件)后进入gdb模式,常见命令如下:    
 设置断点:
b function(在function函数入口处设置断点)
b number(在第number行设置断点)
b (在当前行设置断点)
layout 多窗口查看相应信息:https://blog.csdn.net/zhangjs0322/article/details/10152279
layout src 查看源码
layout reg:查看寄存器信息
单步(finish跳出):
n (next)下一步,逐过程  n 3 下行三步
s (step)进函数,逐步
c 直接跳到下一个断点处
run 运行程序
p (print)  变量名/地址
bt 或者where ( 查看当前函数堆栈)
quit 退出gdb模式
调试带参数的程序:
gdb binary进入gdb模式后,set args -i input.txt -o output.txt 然后输入r,如果想在
某处中段则b number或者函数,然后输入r 即可执行
如果有输入参数,例如cat input.data | ./test -c business.ini -t default -v 123 
[1] set args -c business.ini -t default -v 123 < input.data
[2] gdb test --> r -c business.int -t default -v 123 < input.data

2. core调试

gdb data_center_consumer core文件
根据打出的core日志定位:addr2line -e ./data_center_consumer -i 0x5ab35f


TimLine图片20190117191726.png

相关文章

  • 2. gdb的使用

    参考链接1. GDB调试2. gdb调试方法3. gdb调试示例 1. 说说 gdb gdb 是一款 UNIX 系...

  • gcc常用命令

    gdb相关 gcc加-g才能使用gdb调试gdb -tui a.out打开调试界面run/stop/continu...

  • GDB调试记录

    gdb attach 15343 # 调试某个进程 GNU gdb (GDB) 7.12Copyrigh...

  • gdb调试基本方法

    gdb调试基本方法 gdb调试常用命令 在GDB中运行程序 断点(BreakPoint) 观察点(WatchPoi...

  • GDB命令

    gdb test 启动gdb调试test可执行文件gdb att 进程名 调试某个进程b [行数]/[函数名...

  • Xcode debug Hotspot(一)——创建Xcode项

    概述 前面安装gdb调试hotspot里面,我记录了自己安装gdb调试hotspot的过程。后来我发现,使用gdb...

  • 【实践】gdb调试golang程序入门及gdb命令列表

    1. 摘要 本文讲解gdb调试GOLANG程序的入门配置,以及gdb命令详解备忘。 2. gdb调试go程序入门...

  • 用gdb调试代码

    title: 用gdb调试代码tags: gdbdate: 2017-08-09 15:09:22 gdb调试 开...

  • PWN入门到放弃

    Linux下的pwn常用到的工具有: gdb:Linux调试中必要用到的 gdb-peda:gdb方便调试的工具,...

  • 使用GDB调试C++程序

    GDB调试利器 GDB, the GNU Project debugger, allows you to see ...

网友评论

      本文标题:GDB 调试

      本文链接:https://www.haomeiwen.com/subject/smmwbftx.html