>백엔드 개발 >Golang >GoClipse로 디버깅할 때 Go 코드 대신 어셈블리 코드가 표시되는 이유는 무엇입니까?

GoClipse로 디버깅할 때 Go 코드 대신 어셈블리 코드가 표시되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-23 22:49:30729검색

Why Am I Seeing Assembly Code Instead of Go Code When Debugging with GoClipse?

GoClipse를 사용하여 Go 프로그램 디버깅: Go 코드 대신 어셈블러 코드 문제

GoClipse를 사용하여 Go 프로그램을 디버깅할 때 다음과 같은 상황이 발생할 수 있습니다. 디버거는 Go 프로그램 라인에 중단점이 설정된 경우에도 Go 코드 대신 어셈블리 코드를 단계별로 진행합니다. 이 문제는 필수 GNU 디버거(gdb)를 설치하지 않은 경우 발생할 수 있습니다.

이 문제를 해결하려면 언급한 대로 HomeBrew를 통해 gdb를 설치하는 지침을 따르면 됩니다. 그러나 gdb를 설치한 후에도 여전히 동일한 문제가 발생할 수 있습니다.

디버그 보기 조사

이 문제가 발생하면 디버그 보기를 확인하세요. "main" 함수로 시작하고 macOS 시스템의 경우 rt0_darwin_amd64.s(Windows 시스템의 경우 rt0_windows_amd64.s)에 줄 번호가 뒤에 오는 스택 추적을 표시하는 경우 내부 런타임 "main"에서 디버거가 자동으로 중지되었음을 나타냅니다. " 함수는 C로 작성됩니다.

실행 구성 옵션 조정

이 문제를 해결하려면 실행 구성 옵션으로 이동하세요. 첫 번째 옵션은 프로그램이 이 내부 "main" 기능에서 중지되어야 하는지 여부를 제어합니다. 이것을 "main.main"으로 변경하여 Go 기본 기능에서 중지하거나 옵션을 완전히 선택 취소하여 런타임 "main" 기능에서 자동 중지를 비활성화할 수 있습니다.

실행 구성 옵션을 조정한 후, 어셈블리 코드를 거치지 않고도 Go 프로그램을 디버깅할 수 있어야 합니다. 디버깅을 계속하려면 실행/재개(F8)를 클릭하세요.

위 내용은 GoClipse로 디버깅할 때 Go 코드 대신 어셈블리 코드가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.