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调用此函数:
上述都是调用自定义函数,下面是如何来调用系统函数:
当运行程序没有调试信息调用自定义函数:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?