首页 > 编程语言 >c/c++|gdb 单点调试 | 多点调试|查看栈中信息|具体变量

c/c++|gdb 单点调试 | 多点调试|查看栈中信息|具体变量

时间:2024-03-21 13:30:59浏览次数:27  
标签:info x86 参考 c++ gdb 断点 el7 调试

设置断点,有什么好处,废话就不说了,可以去看手册
设置断点,参考
b xxx.cpp:n 某个源文件的某行
b func1 调试某个函数

在这里插入图片描述

编译
g++ test_gdb_watch.cpp -g
设置断点
b power
r
出现报错
Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc+±4.8.5-44.el7.x86_64
就是缺 调试的一些库,按照要求去下就好了,其实这里有一个问题,os 迭代过快会导致,镜像像风一样,飘!~
安装,参考
sudo debuginfo-install glibc-2.17-326.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc+±4.8.5-44.el7.x86_64
安装成功之后
r
program to calculate power

Breakpoint 1, power (base=2, n=0) at test_gdb_watch.cpp:5
5 p = 1;
查看 参数信息
(gdb) info args
base = 2
n = 0
c 继续
(gdb) c
Continuing.
the i = 0 and the ans = 1

Breakpoint 1, power (base=2, n=1) at test_gdb_watch.cpp:5
5 p = 1;
到这里,因该知道怎么看信息吧 就是 info xxx 参考
看断点信息
info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x00000000004005a7 in >power(int, int) at test_gdb_watch.cpp:5
breakpoint already hit 5 times
删除断点
d breakpoints 1
(gdb) info b
No breakpoints or watchpoints.
在这里插入图片描述

这就是一个简单的调试了啦
以后就可以类推啦

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

更新

设置第二个断点
然后
l 查看这个断点附近的源代码,注意如果在第一次打断点,就会展示的个断点附近的源代码 然后注意编译要添加 -g 调试信息
在这里插入图片描述
然后一直断点调试
在这里插入图片描述
是不是就像我们在gui ide 上调试一样呀

查看栈中信息
info stack
info locals
l
print p
info args
在这里插入图片描述

参考01
参考02
参考03
参考04
参考05
参考06
参考07
参考08
参考09
参考10
参考11
参考12
参考13
参考14
参考15
参考16
参考17
参考18
参考19
参考20
参考21
参考22
参考23
参考24
参考25
参考26
参考27

标签:info,x86,参考,c++,gdb,断点,el7,调试
From: https://blog.csdn.net/ttxiaoxiaobai/article/details/136794522

相关文章

  • C++ 对象模型
    1.普通类对象是什么布局?structBase{Base()=default;~Base()=default;voidFunc(){}inta;intb;};intmain(){Basea;return0;}2.带虚函数的类对象是什么布局?structBase{Base()=default;virtual~Base()......
  • c++模板
    前言大家好,我是jiantaoyab,这篇文章给大家带来c++模板的介绍,模板是泛型程序设计的基础,模板就是类或者函数的蓝图,后一篇文章我将开始介绍STL,模板在STL中大量的运用。模板分为函数模板和类模板函数模板格式template<typenameT1,typenameT2,......,typenameTn>//参数......
  • C++ 合成默认构造函数
    问题:C++面向对象编程时,如果我们没有声明任何构造函数constructor,按照以前最初学习,说编译器会自动合成一个默认的无参构造函数defaultconstructor,但是事实确实是这样吗,存不存在例外呢,即使有合成构造函数,那么它又将对类数据进行怎样的初始化呢?1.问题一如果我们没有声明任何构造......
  • C++ RTTI
    1.背景RTTI的英文全称是"RuntimeTypeIdentification",中文称为"运行时类型识别",它指的是程序在运行的时候才确定需要用到的对象是什么类型的。用于在运行时(而不是编译时)获取有关对象的信息。在C++中,由于存在多态行为,基类指针或者引用指向一个派生类,而其指向的真正类型,在编译阶......
  • C++标准库容器选择
    C++标准库提供了多种容器,每种容器都有其自身的特点和适用场景。以下是C++标准库中常用的容器以及它们的特点:std::vector:动态数组,支持随机访问,适用于需要快速随机访问元素的场景。std::list:双向链表,支持快速插入和删除操作,适用于需要频繁插入和删除元素的场景。std::deque......
  • gdb调试
    在开发定位过程中,肯定会用到gdb去跟踪定位分析问题,下面是记录一些常用的命令,方便后续查找。1:比如我要自己编译一个小程序,然后想用gdb去跟踪,在GDB下调试一个小程序的基本步骤如下:          1.编写源代码://hello.c#include<stdio.h> int......
  • C++基础入门(命名空间,函数,引用)
    文章目录前言1,命名空间2,函数函数重载缺省参数内联函数3,引用尾声前言欢迎来到这篇关于C++的入门博客!C++是一门强大而又广泛应用的编程语言,作为一门面向对象的编程语言,C++可以让你更好地组织和管理代码,提高代码的重用性和可维护性。它广泛应用于游戏开发、嵌入式系......
  • C++ 参数传递浅析
    全文目录概述值传递(pass-by-value)什么是变量?值传递的例子指针传递(pass-by-pointer)什么是指针?指针传递的例子引用传递(pass-by-reference)什么是引用?引用和指针的异同引用传递的例子写在最后小结概述众所周知C++参数传递有三种,分别问值传递、指针传递、引用传......
  • C++内置 new /delete 运算符浅析
    全文目录malloc()/free()原型解析简化版本用法举例new/delete静态/动态类型new/delete运算符原型常用但没有注意区分的例子使用new分配对象的生存期那new/delete都做什么事呢几个注意点写在最后malloc()/free()提到new/delete运算符就不得不说malloc()/f......
  • C++模板实现之谜:为何只能在头文件中?解密原因与高级分离技术
     概述:C++中模板必须在头文件中实现,因为编译器需要可见的实现以生成模板具体实例的代码。通过头文件,确保模板在每个编译单元中都能被正确展开,提高可维护性。在C++中,模板只能在头文件中实现的主要原因是编译器在使用模板时需要生成对应的代码,而这部分代码必须在编译时可见。以......