2010-07-10 4 views
6

라이브러리 코드에서 비 한정적인 패턴을 추적하려고합니다. 특히 HDBC의 MySQL 구현. 그것은 내 프로그램의 유형을 통해 일치 시키려고 노력하고 내가 믿는 mysql의 유형에 매핑합니다. 이 오류에 대한 호출 스택을 얻을 수 없다는 것을 의미합니다. 즉, SQL 쿼리에 여러 매개 변수가 있기 때문에 원인을 정확하게 추적하기가 어렵습니다.하스켈에서 콜 스택을 얻으려면 어떻게해야합니까?

어떤 매개 변수가 오류를 일으키는 지 알 수 있도록 haskell에서 콜 스택을 얻을 수 있습니까? 또한 내 형식과 패턴을보고 해당하는 일치가 있는지 확인해야하므로 컴파일러에서이 코드를 catch해야한다고 생각합니다.

답변

11

GHCi debugger ~ identify where the exception is coming from을 사용할 수 있습니다.

나는 걸어서 a full example here입니다.

+2

감사합니다. Don. ghci가 동적 인 mysql 라이브러리를 찾을 수 없다는 문제로 인해 작동하지 못했습니다. 로딩 패키지 HDBC-mysql-0.6.2 ... .so/.DLL을로드 할 수 없습니다 : mygcc (dlopen (libmygcc.dylib, 9) : image not found) –

+1

아마 경로를 .so 파일을 명령 줄에 추가하십시오. –

+0

정말 대단합니다! 고마워. Don, 나는 그것을 기억해야 할 것이다. – rampion

0

Debug.Trace 라이브러리를 살펴볼 수도 있습니다.

+0

스택 트레이스와는 아무 관련이 없지만 IO 외부에서 인쇄하는 방법입니다. – jrockway

관련 문제