debug —— list调试命令
就以函数之间传递值(嵌套函数),的函数来理解debug调试中的,list命令。
1、test.c源码
1 #include<stdio.h>2 int aaa(int *a){3 int b = 4;4 (*a) = b;5 printf("aaa:a=%d\n",*a);6 printf("aaa:a==%p\n",&(*a));7 return 0;8 }9 int bbb(int *total){10 aaa(total);11 printf("bbb:total=%d\n",*total);12 printf("bbb:total=%p\n",total);13 return 0;14 }15 int ddd(void *other){16 int total = 0;17 bbb(&total);18 printf("ddd:total=%d\n",total);19 printf("ddd:total=%p\n",&total);20 }21 int ccc(){22 int total = 0;23 char other[512] = {'\0'};24 25 bbb(&total);26 printf("ccc:total=%d\n",total);27 printf("ccc:total=%p\n",&total);28 ddd(other);29 }30 int main(){31 ccc();32 return 0;33 }
2、把.c文件编译为可执行文件
如果不编译使用gdb ./a.out执行会有,No symbol table is loaded. Use the "file" command. 的错误出现。
3、gdb调试 启动命令
4、list 或者 l命令
【1】help l 或者 help list
列出指定的函数或行。 没有参数,在前面的列表之后或前后再列出10行。 “list-”列出前10行列表之前的10行。 一个参数指定一行,并在该行周围列出十行。 指定要列出的起始行和结束行之间带有逗号的两个参数。 可以通过以下方式指定行:LINENUM,在当前文件中围绕该行列出,文件:LINENUM,在该文件函数中围绕该行列出,在该函数的开头处列出文件:函数,区分类似名称的静态函数。*地址,在包含该地址的行周围列出。 对于两个arg,如果其中一个为空,则表示与另一个arg相距10行。
【2】(gdb) l 《或者》 (gdb) list 《或者》 (gdb) 空格 ===》列出源码
{会跟前一句的执行结果有关,例如你上一次查看到第10行,执行list命令之后会显示11-20行}
【3】(gdb) l 数字 ===》列出以该数字为中心,包含该局在内的,前后10行代码。
{例如:如果 l 10,显示5-14行; 如果 l 2, 前不够5行,则显示1-10,尽可能多的显示}
【4】(gdb) l - ===》列出上一个l命令查看代码之前的10行。
{例如:如果上一个命令 l 15,显示10-19行; 则l - 之后显示1-9行,不够10行了。}
【5】(gdb) l 数字1 , 数字 2 ===》列出列出数字1,数字2之间的代码
{例如:l 20,24}
【6】(gdb) l 函数名 ===》查看该函数周围的10行代码
{例如:l aaa 注意:函数名后不需要加括号,否则会报错 function "aaa()" not defined}
【7】(gdb) l 文件名:数字 ===》在文件函数中围绕该行列出,从函数的开头列出
{例如:l test.c:22 注意:文件名}
【8】(gdb) l 文件名:函数名 ===》在该文件中,围绕该函数名,列出周围10行代码
{例如:l test.c:bbb 注意:文件名:函数名}
debug —— list调试命令相关推荐
- Dosbox汇编环境下debug常用调试命令(二)
汇编语言学习工具Dosbox的安装与配置(一) 输入debug进入调试 一.显示存储单元的命令 D 1. 其中0100至0120是DEBUG显示的单元内容. 左边用十六进制表示每个字节,右边用ASCI ...
- debug —— C语言 编译时候进行debug的调试
gdb是the GNU Debugger的简称.它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug. 在gd ...
- 思科交换机Debug调试命令
下面列出了部分常用的debug 命令,与各协议和功能相关的更具体的debug命令和对其细节的注释,请参见本手册及命令参考手册中的各相关章节.要使用debug功能,需要在特权用户模式下进行配置: 命令 ...
- android 串口调试adb,Android系统 debug 技巧(最全最强adb 串口调试命令)
串口调试命令 debug adb 命令(去掉adb shell即为串口命令) 发送广播 adb shell am broadcast -a com.android.test 打开activity ad ...
- clodeblocks debug断点调试_Go 的 Debug 工具 delve 介绍
以下文章来源于大愚Talk ,作者大愚Talk delve 的汉语意思是:钻研.探索:用这个来命名一个debug工具还是非常的形象. 本文主要介绍该工具的安装与常用使用方法.是一个step-by-st ...
- VS2005的Command Window 调试命令的总结(转载)
调试命令的总结,挺有用的,所以转过来了.调试的时候,可以在VS2005的Command Window中输入调用. 以 Unicode 形式列出内存 >du 0x056769d0 <=== ...
- Windbg调试命令详解
Windbg调试命令详解 发表于2013 年 8 月 23 日 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Win ...
- Windbg调试命令详解(3)
3 进程与线程 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1 进程命令 进程命令包括这些内容:显示进程 ...
- gdb调试命令的使用及总结
gdb是一个在UNIX环境下的命令行调试工具.如果需要使用gdb调试程序,请在gcc时加上-g选项.下面的命令部分是简化版,比如使用l代替list等等 1.基本命令 1)进入GDB #gdb test ...
最新文章
- 3.相应重定向与请求转发的比较
- 详细理解java Hibernate 或 JPA的级联操作
- Mono 2.4 and MonoDevelop 2.0 have been released
- boost::generator_iterator用法的测试程序
- linux 进程崩溃 wait,Linux信号机制有关问题
- [linux 命令笔记] kill
- matlab图像融合代码,图像融合+源代码+matlab
- 钉钉机器人:python发送消息-加签模式
- 卡巴斯基2009离线升级包制作方法
- Apache JMeter使用教程
- Ant Design 框架
- js事件冒泡与事件捕获、阻止事件冒泡和浏览器默认行为
- 工商银行网银助手无法安装:系统无法打开指定的设备或文件
- 分别计算二维数组主对角线元素与辅对角线元素的和。
- Centos7安裝GitHub
- seo是什么,干什么用,有什么作用(二)
- [UE4笔记] 搜索蓝图节点在哪个蓝图中使用
- Cortex-M系列:错误异常
- 物联网设备数据流转之数据如何存储:TDengine集成SpringBoot, MyBatisPlus实现ORM与CRUD
- 【安卓逆向】 浦X银行签名校验,逆向工程师绝不认输