linux GDB调试

2023-05-16

前言

GDB调试(GNU debug)是unix下的调试工具,可以调试C和C++;

程序怎么才能使用GDB?
  1. 编译的时候加上 -g,保留调试参数;

  1. 如果是别人做的执行文件,可以直接“gdb 文件名”,提示“no debugging symbols found”表示不能被调试;

如何调试
  1. 先编译:g++ -g hello.cpp -o a.out

  1. 开始调试:gdb a.out

  1. 然后输入 run开始运行程序

设置奔溃文件大小
  1. 查询崩溃文件大小限制:ulimit -c(如果结果显示为0则表示不会产生core dump文件)

  1. 设置崩溃文件大小:

  1. 不限制崩溃文件大小:ulimit -c unlimited

  1. 设置大小为10块,一块为512字节:ulimit -c 10

  1. 调试崩溃文件:gdb 程序文件名 core文件名? gdb ./文件名 core.2065

  1. 输入bt可以查看到调用堆栈了

调试已经运行的程序
  1. 打开另一个终端,查询已经运行的程序的进程id:grep -ef | grep 程序名

  1. 输入gdb开始调试,如果提示Operation not permitted,则需要使用管理员权限调试;

  1. 以管理员权限调试:sudo gdb

  1. 根据进程id调试相应的进程:attach id号

参考文档:GDB调试指南 | 守望的个人博客 (yanbinghu.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux GDB调试 的相关文章

随机推荐