perintah run
Memulai mengeksekusi sebuah program baru di bawah GDB.
Sintaks
run
run [Argumen]
r
r [Argumen]
run [Argumen]
r
r [Argumen]
Parameter
- Argumen
- Menentukan argumen baris perintah yang diteruskan ke program melalui parameter argv dan argc.
Pembatasan
Perintah run harus digunakan hanya jika Anda ingin mendebag instansi baru dari program. Gunakan perintah continue sebagai gantinya dalam kasus-kasus berikut:
- Untuk melanjutkan proses setelah melakukan attach ke program dengan perintah attach
- Untuk memulai debugging dengan gdbserver
- Untuk melanjutkan dari sebuah breakpoint
Jika Anda mengeluarkan perintah run setelah sebuah breakpoint tercapai, program Anda akan dimulai ulang dari awal.
Contoh
Perintah berikut memulai mengeksekusi program dengan meneruskan "Hello World" sebagai argumen:
(gdb) b main
Breakpoint 1 at 0x8048444: file 0.cpp, line 3.
(gdb) run "Hello World"
Starting program: /home/testuser/0.elf "Hello World"
Breakpoint 1, main (argc=2, argv=0xbffff774) at 0.cpp:3
3 {
(gdb) print *argv@argc
$1 = {0xbffff894 "/home/testuser/0.elf", 0xbffff8a9 "Hello World"}
Kesalahan Umum
Menggunakan perintah run untuk memulai debugging dengan gdbserver akan menghasilkan kesalahan. Gunakan perintah continue sebagai gantinya:
(gdb) target remote :2001
Remote debugging using :2001
Reading symbols from /lib/ld-linux.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/ld-2.15.so...done.
done.
Loaded symbols for /lib/ld-linux.so.2
0xb7fdf1d0 in _start () from /lib/ld-linux.so.2
(gdb) run
The "remote" target does not support "run". Try "help target" or "continue".
(gdb) b main
Breakpoint 1 at 0x8048444: file 0.cpp, line 3.
(gdb) continue
Continuing.
Breakpoint 1, main (argc=1, argv=0xbffff7a4) at 0.cpp:3
3 {