| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
| public:it:gdb [2024/04/23 15:09] – [常用指令] oakfire | public:it:gdb [2024/04/23 15:29] (当前版本) – [GDB] oakfire |
|---|
| * 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'' |