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

常用命令:

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

调试代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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调用此函数:

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

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

posted @   TechNomad  阅读(381)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示