2010-07-10 8 views
6

Sto cercando di rintracciare un modello non esaustivo in un codice di libreria. Nello specifico l'implementazione mysql di HDBC. Sta cercando di far combaciare i tipi nel mio programma e li mapperò ai tipi di mysql che credo. Non riesco a ottenere un callstack per questo errore, il che significa che dal momento che ci sono numerosi parametri per la query SQL, è difficile rintracciare esattamente cosa lo sta causando.Come posso ottenere un callstack in Haskell?

È possibile ottenere un callstack in haskell, quindi vorrei sapere quale parametro ha causato l'errore? Inoltre, penserei che questo dovrebbe essere catturato dal compilatore poiché dovrebbe essere in grado di guardare i miei tipi e gli schemi e assicurarsi che ci fosse una corrispondenza corrispondente.

risposta

11

È possibile utilizzare GHCi debugger in identify where the exception is coming from.

Cammino attraverso a full example here.

+2

Grazie Don. Non sono stato in grado di farlo funzionare a causa di un problema con ghci non essere in grado di trovare le librerie dinamiche di mysql. Caricamento del pacchetto HDBC-mysql-0.6.2 ... impossibile caricare .so/.DLL per: mygcc (dlopen (libmygcc.dylib, 9): immagine non trovata) –

+1

Probabilmente dovrai passare il percorso verso il .so file sulla riga di comando. –

+0

è fantastico! grazie Don, dovrò ricordarlo. – rampion

0

Si potrebbe anche dare un'occhiata alla libreria Debug.Trace.

+0

Anche se non ha nulla a che fare con una traccia dello stack, è un modo per stampare fuori dall'IO. – jrockway

Problemi correlati