2010-07-10 24 views
6

मैं पुस्तकालय कोड में एक गैर-संपूर्ण पैटर्न को ट्रैक करने का प्रयास कर रहा हूं। विशेष रूप से एचडीबीसी के mysql कार्यान्वयन। यह मेरे कार्यक्रम में प्रकारों से मेल खाने की कोशिश कर रहा है और मुझे विश्वास है कि उन्हें mysql के प्रकारों पर मैप करें। मुझे इस त्रुटि के लिए कॉलस्टैक नहीं मिल रहा है जिसका अर्थ है कि चूंकि SQL क्वेरी में कई पैरामीटर हैं, इसलिए इसे ठीक से ट्रैक करना मुश्किल है।मैं हास्केल में कॉलस्टैक कैसे प्राप्त करूं?

यह हास्केल में एक callstack प्राप्त करने के लिए संभव है तो मैं पता होगा जो पैरामीटर त्रुटि पैदा कर रहा था? इसके अलावा मुझे लगता है कि यह संकलक द्वारा पकड़ा जाना चाहिए क्योंकि यह मेरे प्रकार और पैटर्न को देखने में सक्षम होना चाहिए और यह सुनिश्चित करना चाहिए कि एक संबंधित मैच था।

उत्तर

11

आप GHCi debuggeridentify where the exception is coming from करने के लिए उपयोग कर सकते हैं।

मैं a full example here के माध्यम से चलते हैं।

+2

धन्यवाद डॉन। मैं ghci के साथ गतिशील mysql libs खोजने में सक्षम नहीं होने के कारण किसी मुद्दे के कारण काम करने में सक्षम नहीं हूं। लोड हो रहा है पैकेज HDBC-mysql-0.6.2 ... के लिए/.DLL .so लोड नहीं कर सकता: mygcc (dlopen (libmygcc.dylib, 9): छवि नहीं मिला) –

+1

आप शायद करने के लिए पथ में उत्तीर्ण होना होगा कमांड लाइन पर .so फ़ाइल। –

+0

यह कमाल है! धन्यवाद डॉन, मुझे यह याद रखना होगा। – rampion

0

तुम भी Debug.Trace पुस्तकालय पर एक नज़र हो सकता है।

+0

हालांकि इसमें स्टैक ट्रेस के साथ कुछ लेना देना नहीं है - यह आईओ के बाहर प्रिंट करने का एक तरीका है। – jrockway

संबंधित मुद्दे