通过GDB打印局部变量的值

时间:2013-11-07 11:13:25

标签: debugging gdb

在调试时我需要打印在else块中声明的变量的值。像这样的东西:

if(condition){ 

}
else {
string str = "abcd";
strcpy(globalvariable,str,sizeOf(str));
}

我想看看str。

的价值

2 个答案:

答案 0 :(得分:1)

  1. 在调试器中运行程序。
  2. 使用break命令设置断点以停止执行程序序列。在您的情况下,(gdb) break strcpy每次在其他地方被称为strcpy时都会中断。
  3. 要进行打印,您可以使用以下任何一项,x strx/s strprint strprint "%s", str

答案 1 :(得分:0)

如果str在程序流程中为真,则无法看到condition的值,因为在这种情况下内存中不存在else。 您必须以正常的程序流程或使用gdb jump命令以某种方式输入{{1}}块。