Brainfsck에서 만델 브로 집합을 계산하는 MIPS32r6 프로그램에서 중단 점을 설정하려고합니다. 프로그램 자체는 Clang으로 컴파일 된 C++로 작성되었으며 LLDB로 디버깅 중입니다.lldb를 사용하여 디버깅 할 때 더 높은 줄 번호가 중단 점으로 해석되지 않습니다.
내가 가지고있는 문제는 LLDB에서 문제가없는 주로 낮은 줄 번호에 특정 중단 점을 설정할 수 있다는 것입니다. 그러나 Main.cpp의 Line # 70 이후에 중단 점은 '중단 점 목록을 실행하면 완전히 합리적인 주소로 표시되지만'해결되지 않음 '으로 표시됩니다. 말하자면, 라인 # 70 이후에 설정하려고하는 모든 중단 점이 해결되지 않고 올라오고, 모두 라인 # 70 전에 합리적인 중단 점이 문제없이 해결됩니다.
내가 여기에 연결 한 이진의 복사본을 배치 한: http://filebin.ca/2tJzo2LLBJWO/MipsTest.bin
그리고 여기하여 Main.cpp의 사본 : https://paste.ee/p/WYs8Y
내가 구축하고 다음 옵션 :
을clang -mcompact-branches=always -fasynchronous-unwind-tables -funwind-tables -fexceptions -fcxx-exceptions -mips32r6 -O0 -g -glldb ...
lld --discard-none -znorelro --eh-frame-hdr ...
이 시점에서 나는이 문제의 원인이 무엇인지 확신 할 수 없습니다.
' 타겟 모듈의 덤프 행 테이블 Main.cpp'는 유효하게 보이며, 라인 248 ('main'에있는 유일한 함수의 마지막 라인입니다)까지 올라갑니다. 'readelf '에 표시된 것처럼 또한 유효하며 또한 248 행을 읽습니다. – ameisen