将 argv 传递给 gdb
Passing argv to gdb
我是 运行 gdb 的方式如下:
gdb $file "My Arg here" --ex "source .breakpoints_$file.c" --ex 'r' --ex 'set confirm off'
但我在程序中得到以下信息:
─── Variables ───────────────────────────────────
arg argc = 1, argv = 0x7fffffffe1d8: 47 '/'
意味着它没有接收 argv
。我如何正确地将 cmd 行参数传递给 gdb?
您可以通过将 args
参数传递给 gdb
来完成此操作。例如:
gdb --ex "source .breakpoints_$file.c" --ex 'r' --ex 'set confirm off' \
--args $file "An argument" another
现在我们得到:
─── Variables ──────────────────────────────
arg argc = 3, argv = 0x7fffffffe1b8: 47 '/'
>>> p argv[1]
= 0x7fffffffe49c "An argument"
>>> p argv[2]
= 0x7fffffffe4a8 "another"
我是 运行 gdb 的方式如下:
gdb $file "My Arg here" --ex "source .breakpoints_$file.c" --ex 'r' --ex 'set confirm off'
但我在程序中得到以下信息:
─── Variables ───────────────────────────────────
arg argc = 1, argv = 0x7fffffffe1d8: 47 '/'
意味着它没有接收 argv
。我如何正确地将 cmd 行参数传递给 gdb?
您可以通过将 args
参数传递给 gdb
来完成此操作。例如:
gdb --ex "source .breakpoints_$file.c" --ex 'r' --ex 'set confirm off' \
--args $file "An argument" another
现在我们得到:
─── Variables ──────────────────────────────
arg argc = 3, argv = 0x7fffffffe1b8: 47 '/'
>>> p argv[1]
= 0x7fffffffe49c "An argument"
>>> p argv[2]
= 0x7fffffffe4a8 "another"