freenode/#clasp - IRC Chatlog
Search
0:38:26
drmeister
I found what was failing in setf.lsp - the PUSH macro is an unwind target (an unwind-instruction will unwind to it) but it had debug off. It worked with debug on because if the landing pad was hit because of an exception that wasn't from its unwind-instruction then it would branch to the debug cleanup code. Without the debug cleanup code - it didn't know what to do and had a null target for the branch.
0:39:25
drmeister
I'm going to put some time into backtraces tonight - they are useless now that I'm turning debug off by default.
0:41:30
drmeister
I'm going to take the clib 'backtrace' and 'backtrace_symbols" functions and pretty it up by unmangling function names, dropping functions that are annoying and noisy, looking up jitted symbols and adding any arguments that were made available from debug frames.
3:34:26
drmeister
2.5 hour lectures are nuts. So today we spent about an hour and a half doing problems.
3:50:10
drmeister
I can get function return addresses and function names using backtrace_symbols. I can recognize and demangle the Common Lisp function names.
3:51:07
drmeister
I was hoping I could match up shadow stack info with the info from 'backtrace' but now that I think about it - I don't think I can. Damn.
3:57:14
drmeister
Dang - right now I don't see how to get anything other than an ECL-style backtrace.
4:00:37
drmeister
To scan the stack from top to bottom looking for the return addresses that are returned by 'backtrace'.
4:02:18
drmeister
If I had the addresses of the stack frames on the stack, then I could figure out which spilled arguments on the stack belong to which stack frames.
8:29:13
beach
LET* seems to work. It is converted to nested LETs (associating the declarations with the corresponding LET), which are then converted to lambda forms.