1

是否有任何命令可以在文件gdb中每个函数的开头应用断点。.C

我需要这个,因为我有一个非常大的C文件需要调试,它包含 100 多个函数,我需要找到在运行时调用的所有函数。

4

3 回答 3

1

我不确定以这种方式使用调试器来解决您的搜索是否是个好主意。

我会在每个函数的开头添加一个单独的赋值和一个在文件开头的结构。

struct {
   int foo;
   int bar;
   ...
   int lastFunctionName;
} sFunc;

void foo()
{
  sFunc.foo=1;
  ...
}

void bar()
{
  sFunc.bar=1;
  ...
}

然后你可以运行你的程序,它会为你收集信息。

于 2012-06-29T08:45:37.477 回答
1
rbreak file:regex

如果您查看此页面:http: //sourceware.org/gdb/download/onlinedocs/gdb/Set-Breaks.html#Set-Breaks

也看看过去的线程:gdb, set breakpoint on all functions in a file

于 2012-06-29T08:12:32.743 回答
0

手册指出,有一个选项rbreak regexp可让您设置正则表达式以中断与该正则表达式匹配的所有函数。假设您在一个文件(一个模块?)中,可能所有函数的前缀都相同?

于 2012-06-29T08:16:13.580 回答