- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux开发环境介绍—gdbvalgrind(二)
Linux开发环境介绍 简介(二)GDB Memory Leakage Detection Tools
Introduction to Linux Dev Env. (Ser. 2)
DebuggingOptimization.
Delivered By
LiHao
@founder(Shanghai)
GDB --- 概述(Overview)
目的:
问题:当程序完成编译,链接并生成可执行的目标文件后,如果出现结果与预期的不同时,怎么办?
解决方法:
GDB
GDB作用:
免费的Unix/Linux平台下的调试工具。
GDB --- 使用(Usage)
下面就开始我们的GDB之旅
前置条件
在我们对我们程序调试之前,要保证我们的程序含有debug信息,即保证g++/gcc使用-g 参数对源码进行编译。
启动/退出GDB
在unix/linux的 prompt模式下 输入:gdb 进入调试状态。
在gdb状态下,输入quit,或者 ctrl+d , 退出调试状态。
调试程序
gdb executable 对 executable进行调试。
gdb executable core 对 executable进行调试,并使用core dump信息。
GDB --- 使用(Usage)
gdb executable pid 对当前进程ID为 pid的executable程序进行调试。
问题:如果我们的程序需要我们在执行的时候提供相应的输入参数时,怎么对其进行调试?
解决方法:
启动gdb时对其设置。
gdb executable agrs1 args2… argsN
在gdb状态下使用set args命名对其参数进行设置。
set args args1 args2 … argsN
show args 查看所设置的参数情况。
show args
GDB --- 使用(Usage)之常用参数介绍
gdb 启动时候所能携带的常用参数
-symbols file , -s file ,从所指定的文件file文件中读取符号表。
-exec file –e file, 指定可执行文件。
-core file –c file 指定core dump 文件。
使用ulimit –c unlimited 来打开core dump文件,默认系统不产生core dump文件
-pid num –p num 链接到进程号为num的进程上,同attach命令。
-directory dir –d dir 指定gdb所搜寻的目录。
GDB --- 使用(Usage)之常用参数介绍
gdb日志系统,用来保存gdb命令执行时候的输出,可以将其重定向到一个文件系统中。
set logging on 打开日志系统
set logging off 关闭日志系统
set logging file filename 将日志重定向到filename中。
show logging 显示当前日志参数的当前状态。
set logging overwirte [on|off]
set logging redirect [on|off]
Tips: 在gdb使用的过程中可以使用tab/M-?键来对命令进行补齐。
GDB --- 使用(Usage)之常用参数介绍
run/ r 运行所调试的程序。
设置/查看当前所运行的环境情况。
path directory 将路径directory添加到环境变量PATH中。
show paths 查看环境变量PATH的值。
设置/取消设置/查看环境变量
set environment|env varname[=value] 设置环境变量的值。
show env 查看环境变量的值
unset env varname 取消对环境变量varname的设置。
附加/断开到一进程
attach pid
detach
GDB --- 使用(Usage)之常用参数介绍
设置断点(break/b)
b (break) filename:lineNum 在filename的第lineNum行上设置断点
b (break) 在下一条指令上设置断点
b (break) filename:function_name 在filename的中function_name函数上设置。
b (break) linenum thread threadNum 在指定的线程上
您可能关注的文档
最近下载
- 2019-2020学年重庆八中七年级(上)期末数学试卷.docx
- 02J331 地沟及盖板(标准图集).pdf VIP
- 第十一章 沟通——管理学(马工程).ppt
- 2020-2021学年重庆八中八年级(下)期中数学试卷.doc VIP
- 2020年重庆八中八年级(下)期中物理试卷 .doc VIP
- 某家具城进销存管理系统数据库课程设计.docx
- 生物柴油安全技术说明书.pdf
- 新疆地区输电线路工程冬季施工增加费用解析权威资料.doc VIP
- DB11-1624 2019 北京市电动自行车停放场所防火设计标准.docx
- 重庆市第八中学校2023-2024学年八年级上学期期末考试数学试卷(含解析).doc VIP
文档评论(0)