2010-07-10 27 views
6

Tôi đang cố gắng theo dõi một mẫu không đầy đủ trong mã thư viện. Cụ thể là việc triển khai mysql của HDBC. Nó đang cố gắng để phù hợp với các loại trong chương trình của tôi và ánh xạ chúng vào các loại mysql tôi tin. Tôi không thể có được một callstack cho lỗi này có nghĩa là vì có một số tham số cho truy vấn SQL rất khó để theo dõi chính xác những gì đang gây ra nó.Làm thế nào để có được một callstack trong Haskell?

Có thể nhận lệnh gọi trong haskell để tôi biết thông số nào đã gây ra lỗi không? Ngoài ra tôi sẽ nghĩ rằng điều này nên được bắt bởi trình biên dịch vì nó sẽ có thể nhìn vào các loại của tôi và các mẫu và đảm bảo rằng có một trận đấu tương ứng.

Trả lời

11

Bạn có thể sử dụng GHCi debugger đến identify where the exception is coming from.

Tôi đi qua a full example here.

+2

Cảm ơn Don. Tôi đã không thể nhận được rằng để làm việc do một vấn đề với ghci không thể tìm thấy các lib mysql năng động. Đang tải gói HDBC-mysql-0.6.2 ... không thể tải .so/.DLL cho: mygcc (dlopen (libmygcc.dylib, 9): không tìm thấy hình ảnh) –

+1

Có thể bạn sẽ cần phải chuyển đường dẫn đến .so tập tin trên dòng lệnh. –

+0

thật tuyệt vời! cảm ơn Don, tôi sẽ phải nhớ điều đó. – rampion

0

Bạn cũng có thể xem thư viện Debug.Trace.

+0

Mặc dù nó không có gì để làm với một dấu vết ngăn xếp - đó là một cách để in bên ngoài của IO. – jrockway

Các vấn đề liên quan