문제

객관적인 CAML 언어는 스택 트레이스를 제대로 요청하는 경우에만 스택 추적을 생성합니다. 바이트 코드 및 기본 코드 모두에 대한 요구 사항은 무엇입니까?

도움이 되었습니까?

해결책

-G로 컴파일하고 환경 세트 변수 OCAMLRUNPARAM = B

다른 팁

약간 printexc 기능을 통해 프로그래밍 방식 으로이 작업을 수행 할 수 있습니다.

유닉스에 대한 예외 만 얻을 수있는 것처럼 보이기 때문에 두 번째 프로세스에서 포크하고 예외를 던질 수 있습니다. 이렇게하면 주요 프로세스가 계속 될 수 있습니다.

export OCAMLRUNPARAM=b
# compile with -g

flush_all(); let r = Unix.fork() in if r == 0 then raise Exit

컴파일러를 직접 호출하는 대신 OCAMLBUILD를 사용하는 경우 debug 꼬리표. 로부터 수동:

OcamlBuild를 사용하면 디버그 태그를 프로그램 대상에 추가하면 -G 플래그를 삽입 할 때를 정리할 수 있습니다.

예를 들어 파일을 작성하는 경우 foo.ml 패키지와 함께 bar 그럼 당신의 _tags 파일에는 줄이 있습니다.

<foo.ml>: package(bar), debug

이것은 적절한 것을 삽입합니다 -g 바이트 코드/기본 파일을 구축하는 동안 플래그. 그러나 여전히 환경 변수를 사용하여 설정해야합니다. export OCAMLRUNPARAM=b 다른 답변에서 언급했듯이.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top