- 답변 # 1
- 답변 # 2
GUI 응용 프로그램은 ^ C와 ^ 콘솔 응용 프로그램에 반응하지 않습니다. 요즘 대부분의 사소한 프로젝트는 GUI 응용 프로그램이나 GUI 응용 프로그램에서 주로 사용되는 라이브러리 인 경향이 있으므로 두 가지 옵션이 있습니다 :
<올>별도의 터미널에서 SIGSTOP을 응용 프로그램으로 보냅니다. 귀찮습니다.
GDB 프롬프트에서 ^ C 또는 ^ Break를 누르면 GDB는 종료되지만 응용 프로그램은 계속 실행됩니다. 그런 다음
-p
를 사용하여 GDB를 다시 실행하여 연결할 수 있습니다. 명령 줄 스위치. 디버거 상태가 손실됩니다.두 경우 모두
tasklist | grep
가 도움이 될 것입니다.ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
쉘 스크립트, makefile에서 사용하거나 GDB를 첨부하는 대신 신호를 보내도록 수정할 수 있습니다.info threads
보고 싶은 스레드를 파악하는 데 도움이됩니다. 그런 다음thread
를 사용하십시오.ThreadNumber
스위치로 전환하십시오. - 답변 # 3
쉘을 시작하고 ps를 사용하여 프로세스 ID를 찾은 다음 kill 명령을 사용하여 SIGSTOP 또는 SIGINT를 보내십시오 (예 : kill -INT pid).
- 답변 # 4
인수없이 BREAK 만 입력하세요.
Break는 인수없이 호출 될 때 break가 선택된 스택 프레임에서 실행될 다음 명령어에서 중단 점을 설정합니다
- 답변 # 5
Ctrl + Z는 저에게 효과적입니다 (그러나 일부 경우에만- 왜 그런지 모르겠습니다).
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
정상적인 인터럽트Ctrl-c를 사용하면 정상적으로 작동합니다. GDB는 단지
SIGINT
를 전달합니다 그런 다음 죽는 디버깅 프로세스에. GDB는 비표준 종료를 포착하고 프로세스를 중단하므로 모든 스레드, 스택 및 변수의 현재 값을 계속 확인할 수 있습니다. 중단 점을 사용하는 것이 더 나을지라도 잘 작동합니다. 내가 이런 일을하는 유일한 길은, 내가 어떤 종류의 무한 루프에 들어간 것 같다면.