簡體   English   中英

gdb 中是否存在自動“打印本地”命令?

[英]Does an automatic "print locals" command exist in gdb?

是否有一個 gdb 命令可以自動執行info locals的操作(即在每個步驟或斷點之后)? 我發現本地信息非常重要,但我寧願不必每次都輸入它。 如果沒有實施類似的事情,那將是一個遺憾。

此外,我不希望“觀察”或“顯示”一個或兩個特定變量。 顯示所有,每次,這就是我正在尋找的。

顯示所有,每次,這就是我正在尋找的。

(gdb) define hook-stop
info locals
end

例子:

// foo.c
int foo()
{
  int z = 1;
  int zz = 2;
  int zzz = 3;
  return z + zz + zzz;
}

int main()
{
  int x = 42;
  int y = 24;
  foo();
  return x;
}

gcc -g foo.c && gdb -q ./a.out

(gdb) define hook-stop
Type commands for definition of "hook-stop".
End with a line saying just "end".
>info locals
>end
(gdb) start

Temporary breakpoint 1 at 0x1159: file foo.c, line 11.
Starting program: /tmp/a.out
x = 0
y = 0

Temporary breakpoint 1, main () at foo.c:11
11        int x = 42;
(gdb) n
x = 42
y = 0
12        int y = 24;
(gdb) n
x = 42
y = 24
13        foo();
(gdb) s
z = 21845
zz = 1431654784
zzz = 0
foo () at foo.c:3
3         int z = 1;
(gdb) n
z = 1
zz = 1431654784
zzz = 0
4         int zz = 2;
(gdb) n
z = 1
zz = 2
zzz = 0
5         int zzz = 3;
(gdb) n
z = 1
zz = 2
zzz = 3
6         return z + zz + zzz;
(gdb) n
z = 1
zz = 2
zzz = 3
7       }
(gdb)
x = 42
y = 24
main () at foo.c:14
14        return x;
(gdb) q

文檔在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM