几个常用的gdb命令

show——

show language:查看当前程序的语言环境。

show convenience:查看当前所设置的所有环境变量,不同与environment。

show paths:查看程序的运行路径。

set——

set language <language>:手动设置当前程序的语言环境。

set var <variable>=<value>:通过var指定variable为程序的变量而非GDB的变量,以免产生冲突。

set $<custom_env>=<value>:自定义环境变量,要使用美元符号$。

set print address<on/off>:设置地址是否显示,类似地址的还有许多其它的选项,它们也都可以设置显示开关,当前显示状态可以通过show命令查看。

set args:设置运行时参数。

info——

info frame:查看当前函数的程序语言。

info source:查看当前文件的程序语言。

info registers:查看寄存器的情况。

info line [linespec]:查看源代码在内存中的地址。

info args:显示当前函数的参数名及其值。

info locals:显示当前函数中所有局部变量及其值。

info catch:显示当前函数中的异常处理情况。

info threads:显示线程信息。

info program:查看程序运行状态。

程序运行——

print:查看程序数据,GDB以$1、$2、$3...的方式保存为历史记录,其输出格式是可以指定的,在print后加一个斜线/再加一个格式控制符。如果需要查看一段连续的内存空间的值,使用@符号,左边是第一个内存的地址值,右边是想要查看内存的长度。显示变量时如果发生冲突,可使用::符号。

list:显示源代码,可以通过listsize设置一次显示源代码的行数。

search <re>:用正则表达式搜索源码。

display[/fmt]<expr>:设置程序停住时自动显示的内容,fmt是可选的显示格式,display可通过undisplay取消自动显示,或者是delete删除自动显示,而disable和enable让自动显示失效或恢复而不去删除,当前状态可通过info命令查看。

call <expr>:执行expr表达式,表达式可以是一个函数,以此达到强制调用函数的目的,另一个相似的命令是print命令。

jump <linespec>:指定下一条语句的运行点。

signal <signal>:发送信号给被调试程序,不同于shell的kill命令,后者是被GDB截获的,另外handle命令处理信号,catch命令捕捉程序中发生的事件。

x:即examine,查看内存地址中的值。

directory:指定源文件搜索路径。

断点相关——

break:指定断点位置,还可以指定断点所在的线程。

bt:即backtrace,显示当前栈的信息,具体某一层栈可通过up、down或frame查询。

condition:设置条件断点。

commands:设置断点停止时执行额外的命令。

ignore:设置忽略断点停止的次数。

until:运行程序直到退出循环。

clear:清除指定的断点,类似于delete。

return [expr]:调试断点停在函数中时,强制返回,expr是可选的返回值。

观察点——

watch:设置观察点。

目录——

cd:同shell中的cd,切换目录。

pwd:显示当前目录。

shell——

shell <command>:运行shell中的命令。

时间: 2024-11-05 15:50:34

几个常用的gdb命令的相关文章

我常用的gdb命令(未完待续,随时添加)

gdb用于调试程序. 用gdb调试程序,首先需要用gcc或g++编译程序,但是需要加上一个-g参数,比如min.c程序用gcc min.c -o min方式编译之后,用gdb min来运行调试程序,就无法正常使用.要用-g参数:gcc -g min.c -o min的格式(g++也是一样),再用gdb min来运行调试程序就可以了. list或l:用于列出源程序,每打一次list或l将显示10行源代码,或是指定列出的行号来查看源程序:“list 行号”.使用此参数的时候,要确保源程序没有被移除或

C++常用GDB命令

目前项目使用的: find ./ -name "InfoCheckStat"   ps -ef|grep  workordercon   ps -ef|grep ctpclient export PROCESS_ID=1003 gdb   format workordergen  set args -y -t 3 -n 100000 -i F82 -s ext     export PROCESS_ID=1201 gdb   bussevent  set args  -a   (gdb

常用 GDB 命令中文速览

转自:https://linux.cn/article-8900-1.html?utm_source=index&utm_medium=moremore 目录 break -- 在指定的行或函数处设置断点,缩写为 b info breakpoints -- 打印未删除的所有断点,观察点和捕获点的列表,缩写为 i b disable -- 禁用断点,缩写为 dis enable -- 启用断点 clear -- 清除指定行或函数处的断点 delete -- 删除断点,缩写为 d tbreak --

GDB命令行最基本操作

程序启动: A.冷启动 gdb program              e.g., gdb ./cs gdb –p pid                 e.g., gdb –p `pidof cs` gdb program core      e.g., gdb ./cs core.xxx B.热启动 (gdb) attach pid        e.g., (gdb) attach 2313 C.传入命令行参数 gdb program --args arglist (gdb) set

Xcode GDB 命令list

此文下半部分为转载:但是这里有一些我自己使用技巧,结合下面的文章,我们会有更多的收获,在此感谢原创者.     --------------------- 关于调试异常崩溃: 一般崩溃是由内存使用错误导致的,要么多了,要么少了. 用xcode的调试提示可以知道是什么原因导致的崩溃. 在xcode中product àedit scheme à diagnostics 将enable Zombie objects 和 Malloc Stack 选中, 如果是内存释放错误,则gdb会提示release

常用的ssh命令行

最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips.将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在几位回答者的日常工作中都很有用.对于任何不了解的命令,请使用"man <COMMANDNAME>"查看,或者使用Google.有些命令需要先用 yum, apt-get install 命令安装. 1 基本命令 了解基本的bash 通读整个bash man page. 学习VI

iOS 开发常用的调试命令

XCode4.0以后,编译器是LLVM,控制台调试命令前缀是lldb 第一.LLVM简介 LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time).链接时间(link-time).运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本. 第二. 对关注编译技术的开发人员,LLVM提供了很多优点: 现代化的设计 LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题

(转)GDB命令行最基本操作

程序启动: A.冷启动 gdb program              e.g., gdb ./cs gdb –p pid                 e.g., gdb –p `pidof cs` gdb program core      e.g., gdb ./cs core.xxx B.热启动 (gdb) attach pid        e.g., (gdb) attach 2313 C.传入命令行参数 gdb program --args arglist (gdb) set

ElasticSearch之常用插件安装命令

#head监控安装,推荐 bin/plugin -install mobz/elasticsearch-head #bigdesk集群状态,推荐 bin/plugin -install lukas-vlcek/bigdesk #marvel监控安装 bin/plugin -i elasticsearch/marvel/latest #es-sql安装,网页内有详细说明 https://github.com/NLPchina/elasticsearch-sql #jdbc-river安装(rive