답변:
--args 매개 변수를 사용하여 gdb를 실행할 수 있습니다.
gdb --args executablename arg1 arg2 arg3
자동으로 실행하려면 일부 명령 (예 : 'run')을 파일에 넣고 -x / tmp / cmds 인수로 지정하십시오. 선택적으로 -batch 모드로 실행할 수 있습니다.
gdb -batch -x /tmp/cmds --args executablename arg1 arg2 arg3
man gdb
는 포함 --args
하지 않기 때문에 찾지 못했습니다. gdb --help
그렇습니다.
info gdb
다음에 :-) 를 사용해야 합니다.
info
. Google 또는 Stack Overflow가 XD 작동을 중지 한 경우
index-search
)를 발견 한 후 정보에 매료되었습니다 . 시도하십시오 : info gdb
, 'i', '--args'. 그것은 바로 당신을 가져올 것입니다.
개인적으로 --args
매개 변수 를 기억할 필요없이 약간 더 편리하고 직관적으로 찾을 수있는 또 다른 방법 은 정상적으로 컴파일하고 다음과 같이 r arg1 arg2 arg3
안에서 직접 사용 하는 것입니다 gdb
.
$ gcc -g *.c *.h
$ gdb ./a.out
(gdb) r arg1 arg2 arg3
gdb에는 --init-command <somefile>
somefile에 실행할 gdb 명령 목록이 있으며,이를 사용하여 //GDB
코드에 주석을 달고`
echo "file ./a.out" > run
grep -nrIH "//GDB"|
sed "s/\(^[^:]\+:[^:]\+\):.*$/\1/g" |
awk '{print "b" " " $1}'|
grep -v $(echo $0|sed "s/.*\///g") >> run
gdb --init-command ./run -ex=r
스크립트로, 디버그 기호를로드하는 명령을 넣은 다음, 각 //GDB
주석에 대한 중단 점을 설정하기위한 중단 명령 목록을 생성 하고 실행을 시작합니다.
Hugo Ideler의 답변 외에도. 접두어가 --
or 또는 같은 인수를 사용할 때 -
gdb와 충돌하지는 않았습니다.
gdb는 args
옵션을 프로그램의 인수로 사용합니다.
처음에 나는 확신하기를 원했고, 인수 주위에 따옴표로 gdb를 실행했으며 시작시 제거되었습니다.
이것도 작동하지만 선택 사항입니다.
gdb --args executablename "--arg1" "--arg2" "--arg3"
작동하지 않습니다.
gdb --args executablename "--arg1" "--arg2" "--arg3" -tui
이 경우 -tui
gdb가 아닌 내 프로그램 매개 변수로 사용됩니다.