GoClipse를 사용하여 Go 프로그램 디버깅: 어셈블리 코드와 Go 코드
GoClipse를 사용하여 Go 프로그램을 디버깅할 때 다음과 같은 상황이 발생할 수 있습니다. 디버거는 중단점을 설정한 후에도 Go 코드 대신 어셈블리 코드를 단계별로 진행합니다. 이는 일반적으로 시작 구성 옵션의 부적절한 설정으로 인해 발생합니다.
디버그 보기 이해
디버깅 중에 Go 프로그램이 중지되면 Eclipse의 디버그 보기가 표시됩니다. 스택 추적. 다음과 유사한 경우:
<code class="text">Thread [1] 0 (Suspended : Breakpoint) main() at rt0_windows_amd64.s:15 0x42a400 KERNEL32!BaseThreadInitThunk() at 0x773259ed 0x0 </code>
이는 프로그램이 시작 시 "main" 기능에서 자동으로 중지되었음을 나타냅니다. 그러나 이는 Go "main" 기능이 아니라 C로 작성된 내부 런타임 "main" 기능입니다.
문제 해결
이 문제를 해결하려면, 시작 구성 옵션을 확인하고 첫 번째 옵션을 찾으십시오. "기본 main()(런타임/rt0_*)" 또는 "main.main()(소스 코드 진입점)" 또는 이와 유사한 내용이 표시될 수 있습니다.
"기본 main()(런타임)으로 설정된 경우 /rt0_*)", "main.main() (소스 코드 진입점)"으로 변경합니다. 또는 간단히 옵션을 선택 취소할 수도 있습니다.
필요한 사항을 변경한 후 "실행/재개"(F8)를 클릭하여 디버깅을 계속하세요. 이제 디버거가 어셈블리 코드가 아닌 Go 코드를 단계별로 실행합니다.
위 내용은 GoClipse로 Go 프로그램을 디버깅하는 방법: 어셈블리 코드와 Go 코드?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!