public:it:gdb

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
public:it:gdb [2021/12/07 08:59] – 创建 oakfirepublic:it:gdb [2024/04/23 15:29] (当前版本) – [GDB] oakfire
行 1: 行 1:
 ====== GDB ====== ====== GDB ======
   * [[https://www.sourceware.org/gdb/|GDB: The GNU Project Debugger]]   * [[https://www.sourceware.org/gdb/|GDB: The GNU Project Debugger]]
-  * GDB 支持的语言:Ada Assembly C [[.:cplusplus|C++]] D Fortran [[.:go|Go]] Objective-C OpenCL Modula-2 Pascal [[.:rust|Rust]]+  * GDB 支持的语言:Ada、 Assembly、 C、 [[.:cplusplus|C++]]、 D、 Fortran、 [[.:go|Go]]、 Objective-C、 OpenCL、 Modula-2、 Pascal[[.:rust|Rust]]。 
 +  * [[https://sourceware.org/gdb/current/onlinedocs/gdb/|Online docs]] 
 +  * [[https://evilpan.com/2020/09/13/gdb-tips/|GDB的那些奇淫技巧]] -- 超级棒,涉及子进程调试、多线程调试,以及一大堆指令表 
 +  * [[https://github.com/hellogcc/100-gdb-tips/blob/master/src/index.md|GDB调试的一百个小技巧]] 
 +===== 远程调试 ===== 
 +  * [[https://davis.lbl.gov/Manuals/GDB/gdb_17.html|gdbserver]] 
 +===== Tips ===== 
 +  * 获取指令帮助可随时运行 help,   比如 ''help run'' 
 +  * 需要有调试符号,gcc 或 g++ 编译时带 ''-g'' 参数 
 +  * 可用 ''file <your-file>'' 来查看是否带了调试符号 
 +  * gdb 里使用''info sharedlibrary''命令查看库符号加载 
 +  * 调试coredump 文件: ''gdb appname core-name'' 
 +  * 调试进程: ''gdb appname 1234'', 1234 为进程id 
 +  * 带参数: 
 +    * ''gdb --args app arg1 arg2''  
 +    * 或者 gdb 启动后''set args arg1 arg2''  
 +    * 或 run 时携带参数:''run arg1 arg2'' 
 +    * 查看参数 ''show args'' 
 +  * 查看所有断点''info breakpoints'' 
 +    * 删除对应序号断点:''delete 1'' 
 +  * 如果进入某个函数直接崩溃报错, bt栈只显示到该函数地址,很大可能是改函数内栈溢出(一般是8M),查看变量或数组是否过大。 
 +  * 崩溃时,查看变量: 
 +    * ''bt'' 显示栈信息 
 +    * ''frame 0'' 进入最顶部栈 
 +    * ''info local'' 打印所有局部变量 
 +    * ''p <name>'' 打印某个变量,可打印全局变量 
 + 
 +===== 常用指令 ===== 
 + 
 +<WRAP tablewidth 90% center> 
 +^ 指令 ^ 简写 ^ 说明 ^ 
 +|help | h |查看帮助文档 | 
 +|run | r |执行程序 | 
 +|break | b | 打断点 |  
 +|info break |info b|查看断点 | 
 +|step | s |步进、进入内部 | 
 +|next | n |执行下一行 | 
 +|bt | bt |查看栈调用信息 |  
 +|print | p |查看变量等 | 
 +|list | l |查看当前代码 | 
 +|info source | |查看当前源码文件 | 
 +|info sources | |查看源码文件 | 
 +|continue | c |继续执行 | 
 +|where |  |当前执行到哪 | 
 +|quit | q |退出gdb | 
 +</WRAP>
  • public/it/gdb.1638838778.txt.gz
  • 最后更改: 2021/12/07 08:59
  • oakfire