display | Print value of expression EXP each time the program stops.
undisplay | Cancel some expressions to be displayed when program stops.
使用範例 :
考慮代碼 :
- display.c :
- #include
- int main(void) {
- int a=1, b=2, c=3;
- ++a; ++b; ++c;
- ++a; ++b; ++c;
- ++a; ++b; ++c;
- ++a; ++b; ++c;
- return 0;
- }
編譯代碼並用 gdb 開啟程式 :
linux-tl0r:~/gdbDemo # gcc -g display.c -o display <編譯代碼>
linux-tl0r:~/gdbDemo # gdb display <開啟 gdb 模式>
(gdb) list <顯示代碼>
1 #include
2
3 int main(void) {
4 int a=1, b=2, c=3;
5 ++a; ++b; ++c;
6 ++a; ++b; ++c;
7 ++a; ++b; ++c;
8 ++a; ++b; ++c;
9 return 0;
10 }
(gdb) start <開始執行>
Temporary breakpoint 1 at 0x80483ea: file display.c, line 4.
Starting program: /root/gdbDemo/display
Temporary breakpoint 1, main () at display.c:4
4 int a=1, b=2, c=3;
(gdb) display a <在每次程式stop時, 顯示變數 a>
1: a = -1208205324
(gdb) until 5 <執行到第5行前>
main () at display.c:5
5 ++a; ++b; ++c;
1: a = 1 <在第4行執行完畢後 a=1>
(gdb) display b <接著在每次程式stop, 顯示變數b>
2: b = 2 <目前 b=2>
(gdb) until 7 <執行到第7行前>
main () at display.c:7
7 ++a; ++b; ++c;
2: b = 4
1: a = 3
(gdb) undisplay b <不能直接把變數當作 undisplay 的參數>
Arguments must be display numbers.
(gdb) undisplay 1 <取消顯示變數 a>
(gdb) display c <在每次程式stop, 顯示變數 c>
3: c = 5
(gdb) until 8 <執行到第8行之前>
main () at display.c:8
8 ++a; ++b; ++c;
3: c = 6
2: b = 5
(gdb) c
Continuing.
Program exited normally.
沒有留言:
張貼留言