GDB에서 Stdin 및 매개 변수를 찍는 프로그램을로드하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/455544

문제

stdin에서 입력하고 명령 줄에서 일부 매개 변수를 가져 오는 프로그램이 있습니다. 다음과 같이 보입니다.

cat input.txt > myprogram -path "/home/user/work"

MX GDB에 의해 EMAC 내부의 GDB로 코드를 디버깅하려고합니다. 명령으로 프로그램을로드하려고합니다.

gdb cat input.txt > myprogram -path "/home/user/work"

그러나 GDB는 그것을 좋아하지 않습니다.

질문에서 구겨진 질문 여기. 불행히도 나는 솔루션을 이해하지 못하고 -g 옵션 및 실행 명령 MX GDB.

도움이 되었습니까?

해결책

껍질에서 그것을하고 있다면 다음과 같이 할 것입니다.

% gdb myprogram
gdb> run params ... < input.txt

이것은 EMAC 내에서도 작동하는 것 같습니다.

다른 팁

이를 수행하는 방법에는 여러 가지가 있습니다.

$ gdb myprogram
(gdb) r -path /home/user/work < input.txt

또는

$ gdb myprogram
(gdb) set args -path /home/user/work < input.txt
(gdb) r

또는

$ gdb -ex 'set args -path /home/user/work < input.txt' myprogram
(gdb) r

GDB run 명령 (r) 기본적으로 이전에 설정 한 인수를 기본적으로 사용합니다. set args.

디버깅 세션을 시작할 때 완전성을 위해서는 -args 옵션도 있습니다. 즉)

gdb gdbarg1 gdbarg2 --args yourprog arg1 arg2 -x arg3

그리고 처음부터 디버깅 할 필요가 없다면 다음을 사용하여 이미 실행중인 프로세스에 첨부 할 수도 있습니다.

$ gdb myprogram xxx

여기서 xxx는 프로세스 ID입니다. 그런 다음 GDB에 시작 인수를 알릴 필요는 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top