public:it:gdb

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:gdb [2024/04/23 15:05] – [Tips] oakfirepublic:it:gdb [2024/04/23 15:29] (当前版本) – [GDB] oakfire
行 3: 行 3:
   * 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://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 ===== ===== Tips =====
 +  * 获取指令帮助可随时运行 help,   比如 ''help run''
   * 需要有调试符号,gcc 或 g++ 编译时带 ''-g'' 参数   * 需要有调试符号,gcc 或 g++ 编译时带 ''-g'' 参数
   * 可用 ''file <your-file>'' 来查看是否带了调试符号   * 可用 ''file <your-file>'' 来查看是否带了调试符号
   * gdb 里使用''info sharedlibrary''命令查看库符号加载   * gdb 里使用''info sharedlibrary''命令查看库符号加载
 +  * 调试coredump 文件: ''gdb appname core-name''
 +  * 调试进程: ''gdb appname 1234'', 1234 为进程id
   * 带参数:   * 带参数:
     * ''gdb --args app arg1 arg2''      * ''gdb --args app arg1 arg2'' 
     * 或者 gdb 启动后''set args arg1 arg2''      * 或者 gdb 启动后''set args arg1 arg2'' 
     * 或 run 时携带参数:''run arg1 arg2''     * 或 run 时携带参数:''run arg1 arg2''
 +    * 查看参数 ''show args''
 +  * 查看所有断点''info breakpoints''
 +    * 删除对应序号断点:''delete 1''
   * 如果进入某个函数直接崩溃报错, bt栈只显示到该函数地址,很大可能是改函数内栈溢出(一般是8M),查看变量或数组是否过大。   * 如果进入某个函数直接崩溃报错, bt栈只显示到该函数地址,很大可能是改函数内栈溢出(一般是8M),查看变量或数组是否过大。
   * 崩溃时,查看变量:   * 崩溃时,查看变量:
行 35: 行 44:
 |info sources | |查看源码文件 | |info sources | |查看源码文件 |
 |continue | c |继续执行 | |continue | c |继续执行 |
 +|where |  |当前执行到哪 |
 |quit | q |退出gdb | |quit | q |退出gdb |
 </WRAP> </WRAP>
  • public/it/gdb.1713855923.txt.gz
  • 最后更改: 2024/04/23 15:05
  • oakfire