首页 > 其他分享 >GDB调试之直接调用函数 (十九)

GDB调试之直接调用函数 (十九)

时间:2024-01-22 16:57:45浏览次数:28  
标签:调用 函数 int void 调用函数 GDB 表达式 十九 调试

常用命令:

  • p表达式:求表达式的值并显示结果值。表达式可以包括对正在调试的程序中的函数的调用,即使函数返回值是void,也会显示。
  • call表达式:求表达式的值并显示结果值,如果是函数调用,返回值是void的话,不显示void返回值。

调试代码如下:

#include <iostream>
#include <cstring>
using namespace std;
int test(int x,int y)
{	
	cout << "x=" << x << "y=" << y << endl;
	return x + y;
}
void fun(int x)
{
	cout << "x=" << x << endl;
}
int test_work(const char*name,int age)
{
	cout << "name=" << name << ",age=" << age << endl;
	return 0;
}

int main(int argc,char** argv)
{
	int age = 25;
	char name[100]={0};
	strcpy(name,"SimpleSoft");
	test_work(name,age);
	memset(name,0,sizeof(name));
	age = test(10,20);
	return 0;
}

调试结果如下: 

在函数处添加断点后,再使用call调用此函数:

上述都是调用自定义函数,下面是如何来调用系统函数:

当运行程序没有调试信息调用自定义函数:

标签:调用,函数,int,void,调用函数,GDB,表达式,十九,调试
From: https://www.cnblogs.com/TechNomad/p/17980443

相关文章

  • GDB调试之多进程调试 (十八)
    一、调试子进程正常在子进程某处打入断点后,然后执行可以发现,程序并不会在断点处中断下来,而是会继续执行直到程序结束。setfollow-fork-mode它的模式支持两个值,默认的是parent,一个是child;如果是parent的话,那么GDB调试的时候,它就跟着父进程走,就是说默认情况下只能调试主进程也......
  • gdb查coredump问题流水账
     1,前言如果c++发生了coredump,该怎么办。写c++项目很是头疼的是碰到c++的coredump,程序终止的时候留的信息很有限,不知道怎么查找问题。  2,GDB介绍一直想了解GDB是怎么使用的却没怎么深入了解,只是简单熟悉了gdb的简单使用命令,比如辅助来打断点,熟悉代码调用栈的作用。(1),gdb启......
  • 记录迁移mongdb数据库
    在Windows系统上,默认情况下,MongoDB的数据库文件存储在以下位置: C:\ProgramFiles\MongoDB\Server\<版本号>\data\db这是MongoDB安装程序的默认路径。<版本号> 是MongoDB的版本号,例如 4.4 或 5.0。请注意,如果你在安装MongoDB时选择了不同的安装路径,那么数据库......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十九章到第二十一章
    十九、碰撞检测原文:inventwithpython.com/invent4thed/chapter19.html译者:飞龙协议:CCBY-NC-SA4.0碰撞检测涉及确定屏幕上的两个物体何时相互接触(即发生碰撞)。碰撞检测对于游戏非常有用。例如,如果玩家触碰到敌人,他们可能会失去生命值。或者如果玩家触碰到硬币,他们应该自动......
  • GDB调试之查看变量类型信息(十三)
    查看变量类型信息常用命令:whatisptype/r/o/m/tivariablessetprintobjecton调试代码下载地址whatis命令的使用:ptype命令的使用:查找指定变量在什么地方:......
  • GDB调试之多窗口管理 (十二)
    多窗口管理常用命令:layoutsrc:显示源码窗口layoutasm:显示汇编窗口layoutreg:显示寄存器窗口layoutsplit:切分窗口focussrc/asm/reg:切换窗口焦点infowin:查看当前拥有焦点的窗口ctrl+x+a:退出窗口模式显示源码窗口:多窗口管理调试代码:查看当前拥有焦点的窗口:切换窗......
  • GDB调试之为断点执行命令(十一)
    调试代码下载地址断点执行命令commands的使用:为指定断点设置断点执行命令:保存和导入断点的设置信息: ......
  • GDB调试之捕获点的使用(十)
    一、什么是捕获点捕获点是一个特殊的断点,命令语法为:catchevent,即捕获到event这个事件的时候,程序就会中断下来。测试代码示例如下:#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<iostream>#include<cstring>#include<th......
  • GDB调试之观察点的使用(九)
    一、什么是观察点?观察点是一个特殊的断点,当表达式的值发生变化时,它将中断下来。表达式可以是一个变量的值,也可以包含由运算符组合的一个或多个变量的值,例如'a+b'。有时被称为数据断点(VC里面就称之为数据断点)。二、观察点常用命令watch:写观察点rwatch:读观察点awtach:读写断......
  • GDB调试之函数调用栈管理(八)
    栈帧:当程序进行函数调用的时候,比如说在哪里调用,这些信息我们称之为栈帧。每一个栈帧的内容包括调用的参数,局部变量,寄存器等这些信息,这就是一个栈帧。调用栈:所有栈帧组成的信息称之为调用栈,或者我们也可以称之为调用堆栈。栈的特性是后进先出,函数调用也是这样,如果函数1里面调用了......