如何在GDB中将参数传递给函数

问题描述 投票:0回答:2

我正在尝试使用GDB调试我的C ++程序。

我在考虑使用GDB时是否可以将参数传递给函数?

例如,我有如下程序:

#include <iostream>

void func(int a)
{
    std::cout << a << std::endl;
}

int main(int argc, char **argv)
{
    func(2222);

    return EXIT_SUCCESS;
}

我在函数func(2222)的行main中设置了一个断点。我的问题是:在此程序上使用GDB时,是否可以为函数func而不是2222设置另一个参数?

c++ debugging gdb parameter-passing
2个回答
0
投票

您可以在函数func())中更改值a。因此,您可以使用:

assign a = $value_you_want 

0
投票

是。您可以在调试时评估表达式。您可以使用call <expr>print <expr>,但在断点时必须知道该表达式。

在您的示例中,您可以这样做:

gdb ./test
(gdb) b main
...
(gdb) r
...
(gdb) call func(11)
11

有关呼叫/打印的更多信息:https://sourceware.org/gdb/onlinedocs/gdb/Calling.html

© www.soinside.com 2019 - 2024. All rights reserved.