8.基础命令(run)
8.1 run 命令含义
| run [arglist] | 运行您的程序(如果指定了arglist,则将arglist作为参数运行程序) |
|---|
8.2 关于程序的入参
wangguangbo@DESKTOP-O5D0MDL:/mnt/d/CMD$ gdb -q --args ./cmd 123 abc "1 b 2 d"
Reading symbols from ./cmd...
(gdb) l
62 }
63
64 return 0;
65 }
(gdb) b 46
Breakpoint 1 at 0x1597: file main.cpp, line 46.
(gdb) i b
Num Type Disp Enb Address What
1 breakpoint keep y 0x0000000000001597 in main(int, char**) at main.cpp:46
(gdb) c
The program is not being run.
(gdb) r
Starting program: /mnt/d/CMD/cmd 123 abc 1\ b\ 2\ d
This GDB supports auto-downloading debuginfo from the following URLs:
<https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
argv[0]:/mnt/d/CMD/cmd
argv[1]:123
argv[2]:abc
argv[3]:1 b 2 d
Breakpoint 1, main (argc=4, argv=0x7fffffffde58) at main.cpp:46
46 testFun(MAX);
(gdb) c
Continuing.
num:9988
cnt:199
buf:zzxx
str:xxxx
str:vvvv
FUNC1 FUNC1 FUNC1
FUNC2 FUNC2 FUNC2
[Inferior 1 (process 590) exited normally]
(gdb) c
The program is not being run.
(gdb) r
Starting program: /mnt/d/CMD/cmd 123 abc 1\ b\ 2\ d
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
argv[0]:/mnt/d/CMD/cmd
argv[1]:123
argv[2]:abc
argv[3]:1 b 2 d
Breakpoint 1, main (argc=4, argv=0x7fffffffde58) at main.cpp:46
46 testFun(MAX);
[!Note] 提示
无论程序执行几次入参只要不手动修改都会被保留
查看当前入参命令
(gdb) show args
Argument list to give program being debugged when it is started is "123 abc 1\ b\ 2\ d".
8.3 在GDB中不退出修改入参
命令原型
(gdb) run arg1 arg2 "arg with space"
(gdb) r 446 def "23 3 3 "
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /mnt/d/CMD/cmd 446 def "23 3 3 "
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
argv[0]:/mnt/d/CMD/cmd
argv[1]:446
argv[2]:def
argv[3]:23 3 3
Breakpoint 1, main (argc=4, argv=0x7fffffffde58) at main.cpp:46
46 testFun(MAX)
(gdb) show args
Argument list to give program being debugged when it is started is "446 def "23 3 3 "".
8.4 set手动设置入参
(gdb) set args 222 hhh "123 45 67"
(gdb) show args
Argument list to give program being debugged when it is started is "222 hhh "123 45 67"".
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /mnt/d/CMD/cmd 222 hhh "123 45 67"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
argv[0]:/mnt/d/CMD/cmd
argv[1]:222
argv[2]:hhh
argv[3]:123 45 67
Breakpoint 1, main (argc=4, argv=0x7fffffffde58) at main.cpp:46
46 testFun(MAX);

浙公网安备 33010602011771号