2
int main(int ac, char *av[])
{
  printf("%d");
  return 0;
}

我知道这会打印垃圾,但是如何使用 gdb 跟踪程序来检查垃圾值?

4

1 回答 1

3

您可以使用断点printf并检查堆栈$esp

gdb不知道垃圾值;但printf在您的情况下,碰巧va_args从堆栈中检索(使用)一些“未定义”(实际上是“未初始化”,即包含一些以前的垃圾)值。

于 2013-02-19T07:06:10.597 回答