Perintah set multiple-symbols

Mengontrol bagaimana GDB menangani beberapa breakpoint.

Sintaksis

set multiple-symbols all
set multiple-symbols ask
set multiple-symbols cancel
show multiple-symbols

Mode

all
Ketika ekspresi yang ditentukan untuk perintah break menghasilkan lebih dari satu lokasi kode, GDB akan membuat breakpoint untuk semua lokasi yang terdeteksi.
ask
Ketika ekspresi yang ditentukan untuk perintah break menghasilkan lebih dari satu lokasi kode, GDB akan menampilkan daftar lokasi yang terdeteksi dan memungkinkan pengguna memilih lokasi mana yang akan diatur breakpoint.
cancel
Ketika ekspresi yang ditentukan untuk perintah break menghasilkan lebih dari satu lokasi kode, GDB akan membatalkan pembuatan breakpoint.

Mode Default

Nilai default untuk pengaturan multiple-symbols adalah 'all'.

Contoh

Kami akan menunjukkan penggunaan perintah set multiple-symbols menggunakan program C++ sederhana yang berisi 2 overload dari fungsi test. Menetapkan breakpoint pada test akan menghasilkan dua fungsi:

                        
#include 

void test(int)
{
    printf("test(int) dipanggil\n");
}

void test(int, int)
{
    printf("test(int, int) dipanggil\n");
}

int main()
{
    test(1);
    test(1, 2);
    return 0;
}
                        
                    

Berikut hasil dari menjalankan perintah break pada fungsi test menggunakan berbagai mode multiple-symbols:

                        
(gdb) show multiple-symbols 
Bagaimana debugger menangani ambigu dalam ekspresi adalah "all".
(gdb) break test
Breakpoint 1 at 0x80483da: test. (2 lokasi)
(gdb) info breakpoints 
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   <MULTIPLE>
1.1                         y     0x080483da in test(int) di test.cpp:5
1.2                         y     0x080483ee in test(int, int) di test.cpp:10
(gdb) delete
Hapus semua breakpoint? (y atau n) y
(gdb) set multiple-symbols ask
(gdb) break test
[0] cancel
[1] all
[2] test.cpp:test(int)
[3] test.cpp:test(int, int)
> 2 3
Breakpoint 2 at 0x80483da: file test.cpp, baris 5.
Breakpoint 3 at 0x80483ee: file test.cpp, baris 10.
Peringatan: Beberapa breakpoint telah diatur.
Gunakan perintah "delete" untuk menghapus breakpoint yang tidak diinginkan.
(gdb) info breakpoints
Num     Type           Disp Enb Address    What
2       breakpoint     keep y   0x080483da in test(int) di test.cpp:5
3       breakpoint     keep y   0x080483ee in test(int, int) di test.cpp:10
(gdb) delete
Hapus semua breakpoint? (y atau n) y
(gdb) set multiple-symbols cancel
(gdb) break test
dibatalkan karena perintah ambigu
Lihat set/show multiple-symbol.
(gdb) break test(int)
Breakpoint 4 at 0x80483da: file test.cpp, baris 5.