$ gdb hello(gdb) set args 编程珠玑(gdb) runStarting program: /home/hyb/workspaces/c/hello 编程珠玑Hello World 编程珠玑![Inferior 1 (process 20201) exited normally](gdb) 调试 core 文件 当程序 core dump 时,可能会产生 core 文件,它能够很大程序帮助我们定位问题。但前提是系统没有限制 core 文件...
set substitute-path from_path to_path 比如list显示的源码是 /home/aaa/1.cpp 那么设置了 set substitute-path /home/aaa/ /home/bbb/ 之后,即使你的源文件1.cpp 放在 /home/bbb下面也是可以找到的了。因为gdb帮你做了字符串替换。 相关的参考来自 http://sourceware.org/gdb/onlinedocs/gdb/Source-Path...
其实就是让gdb在看到/home/rickyk/qt-4.8.6的时候他会做自动替换成/home/rickyk/qt-everywhere-opensource-src.4.8.6,也就是说gdb可以正确知道这个文件了。此时我们再show substitute-path可以看到此时的转换规则已经被我们加进去了 (gdb) show substitute-path List of all source path substitution rules: `/ho...
(gdb) cd /path/to/directory 这样,我们就可以确保程序在正确的目录下运行,访问到正确的文件和资源。 5.3 程序的输入输出 (Program Input/Output) 在调试过程中,我们可能需要查看程序的输出或将特定的输入重定向到程序。GDB提供了set logging命令来帮助我们实现这一点。例如,我们可以将程序的输出重定向到一个文件:...
set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的 set print object <on/off> 在C++中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用的规则显示输出,如果关闭这个选项的话,GDB就不管虚函数表了。这个选项默认是off...
[ 12] short int [ 1c] /home/hyb/workspaces/gdb/sourceCode [ 40] main.c (显示部分内容) main为你将要调试的程序名,这里我们可以看到原来的路径,那么我们现在替换掉它: (gdb) set substitute-path /home/hyb/workspaces/gdb/sourceCode /home/hyb/workspaces/gdb/sourceCode/temp (gdb) show substitute-...
${CMAKE_SOURCE_DIR}/tools/openocd/run_openocd.sh \ ${TARGET_OPENOCD_PATH} \ ${TARGET_OPENOCD_INTERFACE} \ ${TARGET_OPENOCD_TARGET} \ ${BIN_DIR}/${TARGET_NAME} \ ${CMAKE_SOURCE_DIR}/tools/gdb/gdbgui.gdb \ ${CMAKE_SOURCE_DIR}" ...
set args 可指定运行时参数。(如:set args 10 20 30 40 50) show args 命令可以查看设置好的运行参数。 2、运行环境。 path 可设定程序的运行路径。 show paths 查看程序的运行路径。 set environment varname [=value] 设置环境变量。如:set env USER=hchen ...
在调试多进程程序时候,默认情况下,除了当前调试的进程,其他进程都处于挂起状态,所以,如果需要在调试当前进程的时候,其他进程也能正常执行,那么通过设置set schedule-multiple on即可。 多线程 多线程开发在日常开发工作中很常见,所以多线程的调试技巧非常有必要掌握。
在调试多进程程序时候,默认情况下,除了当前调试的进程,其他进程都处于挂起状态,所以,如果需要在调试当前进程的时候,其他进程也能正常执行,那么通过设置set schedule-multiple on即可。 多线程 多线程开发在日常开发工作中很常见,所以多线程的调试技巧非常有必要掌握。