어셈블리 코드를 사용하여 GoClipse에서 Go 프로그램 디버깅
GoClipse에서 Go 프로그램을 디버깅하려고 시도하는 동안 사용자는 디버거가 작동하지 않는 문제에 직면할 수 있습니다. Go 코드 대신 어셈블리 코드를 단계별로 진행합니다. 디버깅을 위해 gdb를 올바르게 설치했음에도 불구하고 이 문제가 발생합니다.
중단점이 설정되고 프로그램이 Eclipse 디버거를 통해 실행되면 "rt0_darwin_amd64.s"와 같은 어셈블리 코드 파일을 입력하고 "MOVQ $_rt0_go와 같은 줄에 초점을 맞춥니다. (SB), AX." 이 동작은 디버깅을 어렵게 만들 수 있습니다.
이 문제를 해결하려면 Go 프로그램이 중지될 때 디버그 보기의 내용을 확인하세요. "main() at rt0_darwin_amd64.s"로 시작하는 스택 추적이 표시되면 이는 C로 작성된 내부 런타임 "main" 함수에서 디버거가 일시 중지되었음을 나타냅니다.
이 동작은 첫 번째 함수에 의해 제어됩니다. 시작 구성 옵션의 옵션입니다. 이 문제를 해결하려면 실제 Go 기본 기능에서 중지하도록 옵션을 "main.main"으로 설정하거나 옵션을 선택 취소하면 됩니다.
또는 디버거가 내부 런타임 "main" 기능에서 중지되는 경우 다음을 수행할 수 있습니다. 실행을 계속하려면 "실행/재개"(F8)를 클릭하세요. 이렇게 하면 Go 코드를 단계별로 실행하고 예상대로 디버그할 수 있습니다.
위 내용은 GoClipse에서 Go 프로그램을 디버깅하는 동안 어셈블리 코드를 한 단계씩 실행하는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!