linux下编译&&gdb编译和调试
来源:互联网 发布:python 字典 输入 编辑:程序博客网 时间:2024/04/28 04:33
编译C++:
g++ -g code.cpp –o code //linux下
g++ -g code.cpp –o code.exe //windows下
编译C:
gcc -g code.cpp –o code //linux下
gcc -g code.cpp –o code.exe //windows下
gcc是编译C的,g++是编译C++的,如果搞混可能编译不过报错。-g选项可以不加,但如果想用gdb调试,则一定要加。
正常运行:
>> ./code
Gdb调试运行:
>> gdb code
Gdb命令如下:如果连续输入同样的指令,可以直接使用回车
>>l list 列出下面10行代码。默认为10,也可以自定义。E.g. l 20
>>n next 运行下一行,运行单条代码
>>r run 运行
>>b 12 break 在第12行设断点 b func 在func函数处设置断点
>>info break 查看程序中所有的断点
>>c continue 继续运行
>>p i print变量值,此处是打印变量i的值
>>bt backtrace 查看函数的堆栈
>>step 单步跟踪
>>finish 退出函数
>>q 退出gdb
>>info frame 打印出当前更为详细的当前栈层的信息
>>info args 打印出大年函数的参数名和值
>>info locals 打印出当前函数中局部变量和值
>>info catch 打印出当前函数中的异常处理信息
>>watch expr 为变量或表达式expr设置一个观察点,一旦表达式值或变量有变化,马上停住
>>rwatch expr 当expr被读时停住程序
>>awatch expr 当expr的值被读或被写时停住程序
>> info watchpoints 列出所有已设置的观察点
>>catch event 设置捕捉点,捕捉程序运行时的一些时间,比如载入动态链接库、异常等
Event可以是:
Throw 一个C++抛出的异常
Catch 一个C++捕捉到的异常
Exec 调用系统调用exec
Fork 调用系统调用fork时
Vfork 调用系统调用vfork时
Load 或者 load libname 载入动态链接库时
Unload或者unload libname 卸载动态链接库时
Gdb中断点、捕捉点和观察点都算作停止点
>>clear 清楚所有以定义的停止点
>>clear func >>clear filename:func 清除所有设置在函数上的停止点
>>clear linenum >>clear filename:linenum 清除所有设置在指定行上的停止点
>>delete [breakpoints] [range] 删除指定的断点,breakpoints为断点号,若不指定断点号则删除所有断点,range是断点号的范围
>>disable [breakpoints] [range]disable掉所指定的停止点,breakpoints为断点号,不指定则disable掉所有停止点
>>enable [breakpoints] [range] enable所指定的停止点
gdb program是直接使用gdb于program程序上。
Gdb program core 可以同时调试一个运行程序和core dump
Gdb program pid 制定这个服务程序运行时的进程id,gdb会自动attach进行调试。program需要在PATH环境变量中可以搜索到。
Gdb启动时的参数:
-c -core 调试core dump文件
-s file\ -symbols file 从文件中读取符号表
-d dir\ -directory dir 加入一个源文件的搜索路径,默认为PATH环境变量
- linux下编译&&gdb编译和调试
- linux下c++文件编译、多文件编译、gdb调试
- Linux下编译和调试
- Linux下交叉编译gdb和gdbserver
- Linux下交叉编译gdb和gdbserver
- Linux下交叉编译gdb和gdbserver
- Linux下交叉编译gdb和gdbserver
- Linux下交叉编译gdb和gdbserver
- Linux下交叉编译gdb和gdbserver
- Linux程序编译+GDB调试
- GCC编译和GDB调试
- linux下编译C程序——gdb简单调试
- Linux下编译调试C程序(GCC,GDB)
- Linux 下 C 编译gcc与调试gdb工具介绍
- Linux下的简单C程序gcc编译、gdb调试。
- linux下预处理、编译、汇编、链接及gdb调试
- Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
- 在windows下使用gcc+gdb编译和调试程序
- 大家新年快乐~
- JS组织菜单
- POSIX semaphore: sem_open, sem_close, sem_post, sem_wait
- Win7下Oracle11g完全删除
- build-dep
- linux下编译&&gdb编译和调试
- 关于数组长度不需要编译时确定
- tinypy中缩进的处理
- 如何用键盘映射修改键盘坏键?
- delete一个void*可能会造成泄漏内存
- 转载:CListCtrl使用技巧
- DM3730 上实现WM6
- 使用Fastjson序列化与反序列化对象
- 一切coding都用vi