首页 > 其他分享 >gdb

gdb

时间:2023-04-18 22:24:15浏览次数:29  
标签:函数 list break gdb 设置 断点

First

为调试而编译时,要加-g关键字

gcc -g test.c -o test

-g的作用是:

1、创建符号表,符号表包含了程序中使用的变量名称的列表。

2、关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

Second

gdb命令

启动和退出

  gdb 可执行程序

  quit

给程序设置参数/获取设置参数

  set args 10 20

  show args

gdb使用帮助

  help

查看当前文件代码

  list/l (从默认位置开始显示)

  list/l 行号 (从指定行显示)

  list/l 函数名 (从指定的函数显示)

查看非当前文件代码

  list/l 文件名:行号

  list/l 文件名:函数名

设置显示的行数

  show list/listsize

  set list/listsize 行数

Third

设置断点

  b\break 行号

  b\break 函数名

  b\break 文件名:行号

  b\break 文件名:函数

查看断点

  i/info b/break

删除断点

  d/del/delete 断点编号

设置断点无效

  dis/disable 断点编号

设置断点生成

  ena/enable 断点编号

设置条件断点(一般用在循环的位置)

  b/break 10 if i == 5

Fourth

运行gdb程序

  start(程序停在第一行)

  run(遇到断点才停)

继续运行,到下一个断点停

  c/continue

向下执行一行代码(不会进入函数体)

  n/next

变量操作

  p/print 变量名(打印变量值)

  ptype 变量名(打印变量类型)

向下单步调试(遇到函数进入函数体)

  s/step

  finish(跳出函数体)(需要删除后边的断点)

自动变量操作(每次向下执行都会输出被设置变量的值)

  display num(自动打印指定变量的值)

  i/info display

  undisplay 编号

其它操作

  set var 变量名 = 变量值  (在程序运行时更改变量值,使程序跳到相应的状态)

  until (跳出循环)(需要删除循环中的断点)

 

标签:函数,list,break,gdb,设置,断点
From: https://www.cnblogs.com/WTSRUVF/p/17331407.html

相关文章

  • GDB frame和backtrace命令:查看栈信息--附gdb完整参考
    当程序因某种异常停止运行时,我们要做的就是找到程序停止的具体位置,分析导致程序停止的原因。对于C、C++程序而言,异常往往出现在某个函数体内,例如main()主函数、调用的系统库函数或者自定义的函数等。要知道,程序中每个被调用的函数在执行时,都会生成一些必要的信息,包括:函数调......
  • gdb 调试技巧:定位程序卡死问题
     gdb调试技巧:定位程序卡死问题 最近遇到一个程序卡死的问题,借助gdb轻松定位,供大家参考。遇到程序卡死不退处,可能不知道卡死在什么地方,如果程序非常简单,也许printf大法就可以很快定位。但是对于大型程序,尤其是一些框架程序,printf大法可能就力不从心了。实际的程序......
  • gdbusmessage.c
    /*GDBus-GLibD-BusLibrary**Copyright(C)2008-2010RedHat,Inc.**Thislibraryisfreesoftware;youcanredistributeitand/or*modifyitunderthetermsoftheGNULesserGeneralPublic*LicenseaspublishedbytheFreeSoftwareFounda......
  • GDB之常用命令介绍
    GDB是一个由GNU开源组织发布的,基于命令行的、功能强大的程序调试工具。可以让开发者能看到程序在执行时“内部”发生了什么,或者程序崩溃的现场。下图是gdb的吉祥物--弓箭鱼。GDB主要做以下4种事情:启动程序使程序在指定条件下停止(比如打断点)当程序停止时,检查发生了什么改变......
  • Mogdb - copy 报错 ERROR: missing data for column
    Mogdb-copy报错ERROR:missingdataforcolumn本文出处:https://www.modb.pro/db/419967故障现象使用copy命令在进行数据导入时,出现报错:ERROR:missingdataforcolumn“c2” 故障原因在测试库上模拟重建故障环境droptableifexistssaferpt.crb_g02_002;CREATETABLE......
  • C++-Ubuntu core dumped(核心已转储)-GDB调试
    C++-Ubuntucoredumped(核心已转储)-GDB调试Linux的可执行程序异常退出时,提示“核心已转储”。此时需要系统生成core文件,并通过GDB调试以确定问题。https://blog.csdn.net/scjdas/article/details/128585787设置系统生成core文件用ulimit-a查看corefilesize项是否......
  • glibc GDBusInterfaceVTable
    staticconstGDBusInterfaceVTableboo_vtable={NULL,/*_method_call*/NULL,/*_get_property*/NULL/*_set_property*/};/***GDBusInterfaceVTable:*@method_call:Functionforhandlingincomingmethodcalls.*@get_property:Function......
  • EasyARM i.MX283A 完整系统制作指南(Linux 4.13.2+U-Boot 2017.09+BusyBox 1.27.2+Qt5
    原文:https://www.taterli.com/3213/标题老长呢.反正什么都是新的,所有都是开源的,除了下载工具以外,所有源码都有(据说下载工具也有,我懒得找了.),编译器源码自己也能做,但是没必要了.代码下载地址:https://github.com/nickfox-taterli/imx283a-new/releases/tag/v0.1首先有一个U......
  • glibc gdbus 网络管理
    NetworkManager/ModemManager·GitLab (141条消息)Dbus学习笔记_org.freedesktop.dbus.properties_hanhandan的博客-CSDN博客......
  • gdb使用方法
    GDB调试教程:Debuggingwith GDB https://sourceware.org/gdb/onlinedocs/gdb/ 1小时玩转Linuxgdb命令 http://c.biancheng.net/gdb/......