GDB에서 실행 파일을 자동으로 실행하는 방법은 무엇입니까?
gdb
"실행"을 입력 한 것처럼 실행 파일 을 즉시 실행하고 싶습니다 (동기 : "실행"입력을 싫어합니다).
한 가지 방법은 gdb
다음과 같이 명령을 파이프하는 것입니다.
$ echo run | gdb myApp
그러나이 접근 방식의 문제는 gdb
예 를 들어와의 상호 작용을 잃는다는 것입니다 . 중단 점이 트리거되거나 myApp
충돌하면 gdb
종료됩니다. 이 방법은 여기에서 설명 합니다 .
의 옵션을 살펴보면이 --help
작업을 수행 할 수있는 방법이 없지만 아마도 뭔가 누락 된 것 같습니다.
gdb -ex run ./a.out
인수를 전달해야하는 경우 a.out
:
gdb -ex run --args ./a.out arg1 arg2 ...
편집 : Orion 은 이것이 Mac OSX에서 작동하지 않는다고 말합니다.
이 -ex
플래그는 GDB-6.4
2005 년에 출시 된 이후로 사용 가능 했지만 OSX는 Apple의 GDB 포크를 사용하고 Leopard 용 최신 XCode에는이 포함되어 GDB 6.3.50-20050815 (Apple version gdb-967)
있으므로 운이 좋지 않습니다.
현재 GDB-7.0.1
릴리스를 빌드하는 것이 가능한 솔루션 중 하나입니다. 그냥 읽으십시오 이 .
gdb 스크립트를 사용합니다.
gdb -x your-script
여기서 당신의 스크립트가 같은 것을 포함
file a.out
b main
r
나중에 일반 대화식 gdb 프롬프트가 표시됩니다.
수정 :
다음은 진정으로 게으른 사용자를위한 최적화입니다.
- 로 스크립트를 저장
.gdbinit
에서working directory
. 나중에 gdb를 다음과 같이 실행하면됩니다.
gdb
... 그리고 gdb는 .gdbinit의 내용을 자동으로로드하고 실행합니다.
(echo r ; cat) | gdb a.out
cat을 사용하면 gdb가 중단 된 후에도 계속 입력 할 수 있습니다.
start
명령
이 명령은 또 다른 좋은 옵션입니다.
gdb -ex start --args ./a.out arg1 arg2
실행과 같지만 임시 중단 점을 설정하고 main
거기 에서 중지합니다.
이 임시 중단 점이 적중되면 비활성화됩니다.
starti
starti
프로그램을 시작하고 그 대신 첫 번째 명령어에서 중지 하는 관련 항목도 있습니다. 참조 : GDB의 첫 번째 기계 코드 명령어에서 중지
낮은 수준의 작업을 할 때 좋습니다.
gdb -x <(echo run) --args $program $args
참고 URL : https://stackoverflow.com/questions/2119564/how-to-automatically-run-the-executable-in-gdb
'Nice programing' 카테고리의 다른 글
Kotlin의`forEach`에서`break` 및`continue` (0) | 2020.10.09 |
---|---|
실행 파일 잠금 : Windows는 그렇고 Linux는 그렇지 않습니다. (0) | 2020.10.09 |
해시 테이블 VS 연관 배열 (0) | 2020.10.09 |
프로젝트 패널의 글꼴 크기를 변경할 수 있습니까? (0) | 2020.10.09 |
PostgreSQL 9.1 이상에서 모듈을 가져 오거나 확장을 설치하려면 어떻게해야합니까? (0) | 2020.10.09 |