gdb 프로그램은 항상 코드 01로 종료됩니다.

gdb 프로그램은 항상 코드 01로 종료됩니다.

저는 과학적인 리눅스를 사용하고 있습니다. 여러 개의 cpp 파일을 사용하는 프로젝트를 컴파일하려고 합니다. 이제 성공적으로 컴파일되었지만 내가 얻은 값/데이터는 확실히 잘못된 것입니다.

해당 디렉토리에서 user/project/Build모든 cpp 파일을 컴파일하고 링크하기 위해 make를 입력했습니다. 그럼 가서 user/run/타자쳐야 지./run.sh values.txt

디렉터리로 이동 /user/project/Build/bin한 다음 gdb project중단점을 입력하고 설정하면 문제가 없습니다. 그런데 달리다 보면 맨날 보이죠 Program exited with code 01. main.cpp 또는 다른 소스 파일에 중단점을 설정하는지 여부는 중요하지 않습니다. gdb가 중단점에서 멈춰야 하지 않나요?

답변1

이 트릭을 사용할 수 있을 것 같아요.

종료 시 중단점을 설정합니다.

데이터 베이스..

B출구

달리기..

비티

이렇게 하면 main이 종료 기능을 호출하는 위치를 알 수 있습니다.

답변2

user/run/run.sh아마도 (이름이 주어지면) 프로그램을 실행하는 데 필요한 것을 설정하는 쉘 스크립트일 것입니다. 가능한 것은 환경 변수를 설정하고 명령줄 인수를 전달하는 것입니다. GDB에서 환경 변수와 명령줄 인수를 설정하려면 다음을 사용하세요.

set args = arg1 arg2
set env VAR1 = value1
set env VAR2 = value2

실제로 무엇을 하는지 이해하려면 쉘 스크립트를 읽어보세요.

관련 정보