Perintah start
Menetapkan breakpoint sementara di main() dan mulai mengeksekusi program di bawah GDB.
Sintaks
start [Argumen]
Parameter
- Argumen
- Menentukan argumen baris perintah yang diteruskan ke program melalui parameter argv dan argc.
Pembatasan
Perintah start sebaiknya hanya digunakan jika Anda ingin mendebag instance baru dari program. Gunakan perintah continue jika:
- Untuk melanjutkan proses setelah terpasang dengan perintah attach
- Untuk memulai debugging dengan gdbserver
- Untuk melanjutkan dari breakpoint
Jika Anda menjalankan perintah start setelah breakpoint terkena, program Anda akan dijalankan ulang dari awal.
Catatan
Untuk program C/C++, perintah start setara dengan urutan perintah berikut:
tbreak main run
Contoh
Perintah-perintah berikut memulai mengeksekusi program dengan meneruskan "Hello World" sebagai argumen:
(gdb) start "Hello World" Breakpoint sementara 1 di 0x80483b7: file 0.cpp, line 3. Memulai program: /home/testuser/0.elf "Hello World" Breakpoint sementara 1, main (argc=2, argv=0xbffff774) di 0.cpp:33 return 0; (gdb) print *argv@argc $1 = {0xbffff895 "/home/testuser/0.elf", 0xbffff8aa "Hello World"}
Contoh ini menunjukkan bahwa perintah start yang diberikan setelah melampirkan ke proses akan memulai ulang proses:
(gdb) attach 28325 Melampirkan ke program: /home/testuser/0.elf, proses 28325 Membaca simbol dari /lib/i386-linux-gnu/libc.so.6... selesai. Simbol dimuat untuk /lib/i386-linux-gnu/libc.so.6 0xb7768424 di __kernel_vsyscall () (gdb) start Program yang sedang didebug telah dimulai sebelumnya. Mulai dari awal? (y atau n) y Breakpoint sementara 1 di 0x8048444: file 0.cpp, line 3. Memulai program: /home/testuser/0.elf Breakpoint sementara 1, main (argc=1, argv=0xbffff844) di 0.cpp:3 3 {
Kesalahan Umum
Menggunakan perintah start untuk memulai debugging dengan gdbserver akan menghasilkan kesalahan. Gunakan perintah continue sebagai gantinya:
(gdb) target remote :2001 Debugging jarak jauh menggunakan :2001 Membaca simbol dari /lib/ld-linux.so.2...Membaca simbol dari /usr/lib/debug/lib/i386-linux-gnu/ld-2.15.so...selesai. selesai. Simbol dimuat untuk /lib/ld-linux.so.2 0xb7fdf1d0 di _start () dari /lib/ld-linux.so.2 (gdb) start Target "remote" tidak mendukung "run". Coba "help target" atau "continue". (gdb) b main Breakpoint 1 di 0x8048444: file 0.cpp, line 3. (gdb) continue Melanjutkan. Breakpoint 1, main (argc=1, argv=0xbffff7a4) di 0.cpp:3 3 {