perintah set args
Menetapkan argumen default untuk program yang sedang di-debug.
Sintaks
show args
Parameter
- Argumen
- Menentukan argumen baris perintah default yang akan diteruskan ke program.
Catatan
Argumen yang ditentukan dengan set args akan digunakan jika Anda memulai program dengan perintah run.
Jika Anda memberikan argumen dengan perintah run, argumen yang ditetapkan dengan set args tidak akan digunakan.
Restrictions
Jika Anda menetapkan argumen menggunakan perintah set args setelah program dimulai, argumen tersebut tidak akan berlaku sampai Anda me-restart program tersebut.
Perintah set args tidak berlaku saat melampirkan (attach) ke proses dengan attach.
Contoh
Pada contoh ini, kita akan menjalankan program C++ berikut:
#include
int main(int argc, char *argv[])
{
for(int i = 1; i < argc; i++)
printf("Argumen %d: %s\n", i, argv[i]);
return 0;
}
Kita akan menetapkan argumen default, memulai program, dan mengamati keluarannya:
(gdb) b main
Breakpoint 1 at 0x401395: file 0.cpp, line 4.
(gdb) set args "Hello, World" Test
(gdb) run
Starting program: c:"Hello, World" Test
[New Thread 704.0x418]
Breakpoint 1, main (argc=3, argv=0x3e3f68) at 0.cpp:4
4 {
(gdb) show args
Argument list to give program being debugged when it is started is ""Hello, World" Test".
(gdb) continue
Continuing.
Argument 1: Hello, World
Argument 2: Test
[Inferior 1 (process 704) exited normally]
(gdb)
Kesalahan Umum
Menetapkan argumen setelah Anda memulai program tidak akan berlaku sampai Anda me-restart program:
(gdb) set args Test1
(gdb) b main
Breakpoint 1 at 0x401395: file 0.cpp, line 4.
(gdb) run
Starting program: c:Test1
[New Thread 1992.0x9c0]
Breakpoint 1, main (argc=2, argv=0x3e3f38) at 0.cpp:4
4 {
(gdb) print *argv@argc
$1 = {0x3e3ec5 "c:\mingw\bin\0.exe", 0x3e3ed9 "Test1"}
(gdb) set args Test2
(gdb) print *argv@argc
$2 = {0x3e3ec5 "c:\mingw\bin\0.exe", 0x3e3ed9 "Test1"}
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: c:Test2
[New Thread 828.0x62c]
Breakpoint 1, main (argc=2, argv=0x3e3f38) at 0.cpp:4
4 {
(gdb) print *argv@argc
$3 = {0x3e3ec5 "c:\mingw\bin\0.exe", 0x3e3ed9 "Test2"}
(gdb)