Perintah start

Menetapkan breakpoint sementara di main() dan mulai mengeksekusi program di bawah GDB.

Sintaks

start
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 {