[plt-scheme] Error Traces
Hi,
I have been having some problems with error traces in compiled modules.
Please consider the following example.
I created a module called module1 that consists of two files; module1.ss
and info.ss. I copy these two files into a directory called
"/usr/local/plt/collects/module1".
I then created a program called sample3.ss that will force an error in
module1. When I run sample3.ss I get the following results:
/: division by zero
/usr/local/plt/collects/module1/module1.ss:8:6: (/ x y)
/usr/home/apvanderveen/work/sample3.ss:4:0: (display (sample-function 5 0))
This provides me with a nice trace of where the error occurred. This is
great for debugging. Now I compile the module using the following
command as root:
mzc --collection-zos module1
When I run sample3.ss I now get the following results:
/: division by zero
/usr/home/apvanderveen/work/sample3.ss:4:9: (sample-function 5 0)
/usr/home/apvanderveen/work/sample3.ss:4:0: (display (sample-function 5 0))
As you can see the error trace no longer shows me where the error is.
It only tells me that an error occurred in sample-function. In my old C
days this was similar to what would happen if I did not compile with
debug information. I could not find any information in mzc about how to
retain line numbers.
I want to compile my modules because of the performance increase.
However, I need these error traces to track down latent bugs.
Thanks for any help,
Arend
Following is the sample code:
sample3.ss
------------------------------
(require (lib "errortrace.ss" "errortrace"))
(require (lib "module1.ss" "module1"))
(display (sample-function 5 0))
(newline)
------------------------------
module1.ss
------------------------------
-(module module1
mzscheme
(require (lib "errortrace.ss" "errortrace"))
(define sample-function
(lambda (x y)
(/ x y)))
(provide sample-function))
-----------------------------
info.ss
------------------------------
(module info (lib "infotab.ss" "setup")
(define name "MODULE1")
(define primary-file "module1.ss"))
------------------------------