Perintah undisplay
Menghapus ekspresi yang ditampilkan secara otomatis sebelumnya yang disetel dengan perintah display.
Sintaks
udisplay [Nomor ekspresi]
undisplay
undisplay
Parameter
- Nomor ekspresi
- Menentukan nomor ekspresi (seperti yang dilaporkan oleh perintah display) yang harus dihapus. Jika tidak ada nomor ekspresi yang spesifik, perintah undisplay akan menghapus semua ekspresi yang ditampilkan secara otomatis.
Contoh
Kami akan menunjukkan penggunaan perintah undisplay menggunakan program sederhana yang menampilkan argumennya dalam sebuah loop:
#includeint main(int argc, char **argv) { for (int i = 0; i < argc; i++) printf("Arg %d: %s\n", i, argv[i]); return 0; }
Kami akan menggunakan perintah display untuk membiarkan GDB menampilkan nilai penghitung loop dan argumen yang ditampilkan saat setiap langkah, kemudian menggunakan perintah undisplay untuk menghapus beberapa ekspresi tersebut:
(gdb) set args arg1 arg2 arg3 (gdb) start Breakpoint sementara 1 di 0x8048426: file test.cpp, line 5. Starting program: /home/bazis/test arg1 arg2 arg3 Breakpoint sementara 1, main (argc=4, argv=0xbffff024) at test.cpp:5 5 for(int i = 0; i < argc; i++) (gdb) next 6 printf("Arg %d: %s\n", i, argv[i]); (gdb) display/x i 1: /x i = 0x0 (gdb) display argv[i] 2: argv[i] = 0xbffff204 "/home/bazis/test" (gdb) next Arg 0: /home/bazis/test 5 for(int i = 0; i < argc; i++) 2: argv[i] = 0xbffff204 "/home/bazis/test" 1: /x i = 0x0 (gdb) next 6 printf("Arg %d: %s\n", i, argv[i]); 2: argv[i] = 0xbffff215 "arg1" 1: /x i = 0x1 (gdb) display 2: argv[i] = 0xbffff215 "arg1" 1: /x i = 0x1 (gdb) undisplay 1 (gdb) next Arg 1: arg1 5 for(int i = 0; i < argc; i++) 2: argv[i] = 0xbffff215 "arg1" (gdb) undisplay Delete all auto-display expressions? (y or n) y (gdb) next Arg 2: arg2 5 for(int i = 0; i < argc; i++) (gdb) next 6 printf("Arg %d: %s\n", i, argv[i]); (gdb) print i $1 = 3