프로그램 수신 신호 SIGTRAP, 추적/중단점 트랩
저는 소프트웨어의 디버깅을 하고 있습니다.함수에 중단점을 설정했는데, 어떤 이유에서인지, 그 중단점에 도달하면continue
나는 항상 함수(한 번만 호출해야 하는 초기화 함수)로 돌아갑니다.브레이크 포인트를 제거할 때, 그리고continue
, GDB는 다음과 같이 말합니다.
Program received signal SIGTRAP, Trace/breakpoint trap.
브레이크포인트 작업을 하다보니 '브레이크포인트 트랩'에 빠졌다고 생각합니다.브레이크포인트 트랩이란 무엇입니까?
제가 생각할 수 있는 다른 가능성은 다음과 같습니다.
1.프로세스에서 두 개 이상의 스레드를 실행하고 있습니다.
예를 들어 - 2는 x & y라고 말합니다.
2. 스레드가 중단점에 도달했지만 당신은 스레드 x에 gdb를 첨부했습니다.
이 경우는 추적/중단점 트랩입니다.
중단점 트랩은 프로세서가 중단점에 도달했음을 의미할 뿐입니다.왜 이런 일이 일어나는지에 대한 두 가지 가능성이 있습니다.CPU가 재설정되고 중단점에 다시 도달하기 때문에 초기화 코드가 타격을 입을 가능성이 높습니다.다른 가능성은 중단점을 설정한 코드가 초기화가 아닌 다른 곳에서 실제로 실행된다는 것입니다.때때로 적극적인 컴파일러 최적화를 사용하면 중단점이 어떤 코드로 매핑되고 어떤 실행 경로로 이동할 수 있는지 정확하게 구분하기가 어려울 수 있습니다.
Visual studio 2015에서 리눅스 프로젝트를 실행하고 원격 디버깅을 하는 데 문제가 생겼습니다.내 솔루션은 project_properties -> 구성 속성 -> 디버깅 -> 디버깅 모드로 값을 "gdbserver"에서 "gdb"로 변경합니다.
백업 공급 장치로 V BAT를 사용하고 백업 전압 드라이브가 1.65V보다 낮은 경우 전원 공급 장치에 연결한 후에도 동일한 문제가 발생합니다.
이 경우 모든 전원 공급 장치를 분리하고 올바른 전압 레벨로 다시 연결해야 합니다.그러면 디버깅의 문제가 사라집니다.
나는 같은 문제를 계속 안고 있었고 내 경우 해결책은 SWD 빈도를 줄이는 것입니다. (MCU와 호스트 사이에 납땜 직원이 있으며 신뢰할 수 없습니다.) 4000k를 100k로 변경했고 문제가 사라졌습니다.
사용자의 함수 반환 값이 올바르게 작성되었는지, 함수가 반환 값을 선언하지만 함수 구현이 반환을 잊어버렸는지 확인하십시오.
언급URL : https://stackoverflow.com/questions/9809413/program-received-signal-sigtrap-trace-breakpoint-trap
'programing' 카테고리의 다른 글
XML 파일을 다른 XML 파일로 가져올 수 있습니까? (0) | 2023.09.16 |
---|---|
jquery로 클릭한 링크의 href를 얻는 방법? (0) | 2023.09.16 |
Woocommerce - 결제 종류에 따른 맞춤형 이메일 발송 방법 (0) | 2023.09.16 |
Macos에서 mariadb를 시작하는 데 문제가 있음 (0) | 2023.09.16 |
왜 이 PHP 스크립트(AJAX에 의해 호출됨)가 무작위로 SESSION을 로드하지 않습니까? (0) | 2023.09.16 |