就以函数之间传递值(嵌套函数),的函数来理解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调试命令相关推荐

  1. Dosbox汇编环境下debug常用调试命令(二)

    汇编语言学习工具Dosbox的安装与配置(一) 输入debug进入调试 一.显示存储单元的命令 D 1. 其中0100至0120是DEBUG显示的单元内容. 左边用十六进制表示每个字节,右边用ASCI ...

  2. debug —— C语言 编译时候进行debug的调试

    gdb是the GNU Debugger的简称.它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug. 在gd ...

  3. 思科交换机Debug调试命令

    下面列出了部分常用的debug 命令,与各协议和功能相关的更具体的debug命令和对其细节的注释,请参见本手册及命令参考手册中的各相关章节.要使用debug功能,需要在特权用户模式下进行配置: 命令 ...

  4. android 串口调试adb,Android系统 debug 技巧(最全最强adb 串口调试命令)

    串口调试命令 debug adb 命令(去掉adb shell即为串口命令) 发送广播 adb shell am broadcast -a com.android.test 打开activity ad ...

  5. clodeblocks debug断点调试_Go 的 Debug 工具 delve 介绍

    以下文章来源于大愚Talk ,作者大愚Talk delve 的汉语意思是:钻研.探索:用这个来命名一个debug工具还是非常的形象. 本文主要介绍该工具的安装与常用使用方法.是一个step-by-st ...

  6. VS2005的Command Window 调试命令的总结(转载)

    调试命令的总结,挺有用的,所以转过来了.调试的时候,可以在VS2005的Command Window中输入调用. 以 Unicode 形式列出内存 >du 0x056769d0 <=== ...

  7. Windbg调试命令详解

    Windbg调试命令详解 发表于2013 年 8 月 23 日 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Win ...

  8. Windbg调试命令详解(3)

    3 进程与线程 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1 进程命令 进程命令包括这些内容:显示进程 ...

  9. gdb调试命令的使用及总结

    gdb是一个在UNIX环境下的命令行调试工具.如果需要使用gdb调试程序,请在gcc时加上-g选项.下面的命令部分是简化版,比如使用l代替list等等 1.基本命令 1)进入GDB #gdb test ...

最新文章

  1. 3.相应重定向与请求转发的比较
  2. 详细理解java Hibernate 或 JPA的级联操作
  3. Mono 2.4 and MonoDevelop 2.0 have been released
  4. boost::generator_iterator用法的测试程序
  5. linux 进程崩溃 wait,Linux信号机制有关问题
  6. [linux 命令笔记] kill
  7. matlab图像融合代码,图像融合+源代码+matlab
  8. 钉钉机器人:python发送消息-加签模式
  9. 卡巴斯基2009离线升级包制作方法
  10. Apache JMeter使用教程
  11. Ant Design 框架
  12. js事件冒泡与事件捕获、阻止事件冒泡和浏览器默认行为
  13. 工商银行网银助手无法安装:系统无法打开指定的设备或文件
  14. 分别计算二维数组主对角线元素与辅对角线元素的和。
  15. Centos7安裝GitHub
  16. seo是什么,干什么用,有什么作用(二)
  17. [UE4笔记] 搜索蓝图节点在哪个蓝图中使用
  18. Cortex-M系列:错误异常
  19. 物联网设备数据流转之数据如何存储:TDengine集成SpringBoot, MyBatisPlus实现ORM与CRUD
  20. 【安卓逆向】 浦X银行签名校验,逆向工程师绝不认输

热门文章

  1. Linux常用命令(简单的常用)
  2. ArcGIS Engine空间高效查询(IIdentify方法)
  3. java try嵌套
  4. JAVA之二叉查找树
  5. thinkphp5 使用PHPExcel 导入导出
  6. 简单dp ---HDU3485 Count 101
  7. 数据存储Data Storage
  8. 多个结果集ResultSet的问题
  9. Python : 什么是*args和**kwargs[转载]
  10. html打地鼠游戏设计报告,有趣的Axure案例:打地鼠游戏的设计