合肥网站开发招聘免费搭建个人服务器
合肥网站开发招聘,免费搭建个人服务器,界面设计是什么专业,wordpress淘宝客伪商城主题GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的… GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的最大值2.2 临时修改core文件的生成路径2.2.1 示例一除数设为02.2.2 示例二这里scanf后的参数没有加 2.32.4 1. GDB调试器
1.1 前言
GDB是GNU调试器GNU Debugger的缩写是一种功能强大的调试工具可以用于调试多种编程语言的程序如C、C、汇编等。GDB可以帮助程序员在程序运行时进行调试包括查看变量的值、跟踪程序执行流程、设置断点等。 GDB支持多种操作系统包括Linux、Unix、Windows等。
1.2 GDB编译程序
文件编译 g main.cpp -o main带有GDB debug功能编译 g -g main.cpp -o main查看可执行文件是否带有debug功能 readelf -S main | grep debug
1.3 启动GDB 1.4 载入被调试程序 1.5 查看源码
list / l [first, last]行号
1.6 运行程序
run / r 若程序运行时需要参数,在run命令后加上参数即可.
1.7 断点设置
break / b 行号/函数名/条件
1.7.1 通过行号设置断点 1.7.2 通过函数名设置断点 1.7.3 通过条件设置断点
当n 1时会在OddOrEven函数中停止执行
1.7.4 查看断点信息
info breakpoints
1.7.5 删除断点
delete breakpointNum
1.8 单步调试
1.9 2. GDB调试core文件
2.1 设定core文件的最大值
ulimit -c [n] 有参数n为设置没有参数n为查看若core文件最大值为0则不会生成coredump
2.2 临时修改core文件的生成路径
echo /root/achen/project/coredump/core.%e.%p /proc/sys/kernel/core_pattern %e为程序名%p为进程id
2.2.1 示例一除数设为0 编译后运行并将除数设为0 提示核心已转储coredump查看coredump目录下生成了core文件 使用GDB对core进行调试 core-file core文件 这里提示信号终止了程序发成了arithmetic异常由于除数为0 查看函数的调用栈帧和层级关系 backtrace / bt 这里和上面core-file都有一串问号原因是没加载符号表解决方案为在core-file之前先载入被调试程序 调用bt命令 结果为函数调用的栈帧和层级关系因为该程序中没有函数调用所以只有显示main函数且错误行数为第9行
2.2.2 示例二这里scanf后的参数没有加 这里scanf后的参数没有加 编译后运行 发生coredump查看coredump目录生成了core文件 使用GDB进行调试 这里显示信号终止了服务发生了段错误 查看栈帧和层级关系发现函数调用关系为main-scanf-_IO_vfscanf函数错误为第6行
2.3
2.4
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88057.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!