Windows에서 포니 프로그램 디버깅
1290 단어 pony
#if defined(PLATFORM_IS_WINDOWS)
opt.strip_debug = true;
#endif
디버깅 정보를 고정적으로 제거하는 선택이다.
하지만 저는 주로 윈도우를 사용해서 개발을 하고 있기 때문에 불편합니다. 그래서 이 옵션을 제거하고 코드뷰 정보 생성(총 두 줄 코드 변경)을 시도해 봤습니다.
다시 컴파일하면 LLVM에서 오류가 발생합니다.
Assertion failed: !isa(Scope) && "shouldn't make a namespace scope for a type"
이 오류는 포니 컴파일러에서 부정확한 정보를 생성했기 때문에 고치려면 반드시 많은 공을 들여야 하고 다른 방법을 강구해야 한다는 것을 설명한다.
pm->addModuleFlag(Module::Warning, "CodeView", 1);
ponyc . -d -r=ir
출력 clang -c main.ll
link /DEBUG advapi32.lib ws2_32.lib libponyrt.lib crypto.lib main.o
link
/DEBUG
옵션은 디버깅 정보를 생성하고 Visual Studio Debugger로 디버깅할 수 있습니다.기본적인 단점, 걸음걸이, 변수 보기는 문제없고, 포니의 표준 라이브러리와 실행 시까지 걸음걸이가 가능합니다.
하지만 몇 가지 문제가 있다.