libera/#sbcl - IRC Chatlog
Search
7:30:42
Shinmera
Another Windows thing: sometimes the stack trace appears completely useless, consisting merely of a few frames of SB-KERNEL:INTERNAL-ERROR above two foreign function frames. Makes figuring out what the heck the error was very, very difficult.
8:59:03
luis
Shinmera: the problem, I think, is that the win64 calling convention omits the frame pointer so we need to call CaptureStackBackTrace or something similar which knows how to map <instruction addresses> to <stack pointer offsets to the frame base> essentially
9:01:50
luis
it's not easy to check with a C debugger because that'll become confused by the Lisp frames on top
9:03:48
Shinmera
This is captured and automatically submitted from some random user's machine. I have no way of reproducing it and since the trace tells me nothing no way of even pinpointing where the failure point would be.
9:08:36
Shinmera
The thread is lisp-controlled and the error is definitely in lisp land. There's no callbacks in there.
10:16:08
luis
hmm. That's the kind of error that's triggered via BREAKPOINT_EXCEPTION so there's some foreign functions (handle_exception_ex(), veh()) in between
10:28:06
luis
ah, I think I've reproduced it. It gets confused with the exception handling frames indeed. What parameters are you passing to sb-debug:print-backtrace to get that backtrace?