On 2009/12/08 at 18:36, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk
wrote:
Nick Couchman wrote:
Updated and rebuilt OpenBIOS - still getting the same unhandled exception at
the same place:
(gdb) l *0x00000000ffd10e54 0xffd10e54 is in cfetch (../include/openbios/stack.h:34). 29 typedef ucell phandle_t; 30 31 32 33 34 static inline void PUSH(ucell value) { 35 dstack[++dstackcnt] = (value); 36 } 37 static inline void PUSH_xt( xt_t xt ) { PUSH( (ucell)xt ); } 38 static inline void PUSH_ih( ihandle_t ih ) { PUSH( (ucell)ih ); }
Again - any chance you trace this using the Forth debugger instead? Otherwise it's pretty much impossible to find out where you are in the Forth code by catching it at the system level.
Okay, after some great help from everyone here on getting debugging to work correctly, I've come up with the following output. This indicates that the problem is somewhere at the end of the open-package method - it finishes, then throws the exception. The ?fcode-verbose output is here: http://openbios.pastebin.com/m7807de7c. Here's the debugging output...I'll try to enable a few more things to figure out why it's failing right after open-package.
-Nick
0 > do-boot : do-boot ( Empty ) 00000000ffe386b0: parse-bootargs ( Empty ) 00000000ffe386b8: halt? ( 0 ) 00000000ffe386c0: do?branch ( Empty ) 00000000ffe38710: get-bootdev ( Empty ) 00000000ffe38718: load-pkg ( Empty ) 00000000ffe38720: mount-root : mount-root ( Empty ) 00000000ffe35af0: boot-dev$ ( ffe35570 6 ) 00000000ffe35af8: fs-pkg$ ( ffe35570 6 ffe31588 10 ) 00000000ffe35b00: $open-package : $open-package ( ffe35570 6 ffe31588 10 ) 00000000ffe13dc8: find-package : find-package ( ffe35570 6 ffe31588 10 ) 00000000ffe13be8: (") ( ffe35570 6 ffe31588 10 ffe13bf8 9 ) 00000000ffe13c08: find-dev ( ffe35570 6 ffe31588 10 ffe27920 ffffffffffffffff ) 00000000ffe13c10: 0= ( ffe35570 6 ffe31588 10 ffe27920 0 ) 00000000ffe13c18: do?branch ( ffe35570 6 ffe31588 10 ffe27920 ) 00000000ffe13c40: find-rel-dev ( ffe35570 6 ffe32320 ffffffffffffffff ) 00000000ffe13c48: 0= ( ffe35570 6 ffe32320 0 ) 00000000ffe13c50: do?branch ( ffe35570 6 ffe32320 ) 00000000ffe13c70: true ( ffe35570 6 ffe32320 ffffffffffffffff ) 00000000ffe13c78: (semis) [ Finished find-package ] ( ffe35570 6 ffe32320 ffffffffffffffff ) 00000000ffe13dd0: do?branch ( ffe35570 6 ffe32320 ) 00000000ffe13de0: open-package : open-package ( ffe35570 6 ffe32320 ) 00000000ffe13ca0: create-instance ( ffe35570 6 ffe49330 ) 00000000ffe13ca8: dup ( ffe35570 6 ffe49330 ffe49330 ) 00000000ffe13cb0: 0= ( ffe35570 6 ffe49330 0 ) 00000000ffe13cb8: do?branch ( ffe35570 6 ffe49330 ) 00000000ffe13ce0: >r ( ffe35570 6 ) 00000000ffe13ce8: strdup ( ffe47df8 6 ) 00000000ffe13cf0: r@ ( ffe47df8 6 ffe49330 ) 00000000ffe13cf8: >in.arguments ( ffe47df8 6 ffe49378 ) 00000000ffe13d00: 2! ( Empty ) 00000000ffe13d08: (") ( ffe13d18 4 ) 00000000ffe13d20: r@ ( ffe13d18 4 ffe49330 ) 00000000ffe13d28: (lit) ( ffe13d18 4 ffe49330 ffe13a88 ) 00000000ffe13d38: catch : find-package ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe26fd0 9 ) 00000000ffe13be8: (") ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe26fd0 9 ffe13bf8 9 ) 00000000ffe13c08: find-dev ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe26fd0 9 ffe27920 ffffffffffffffff ) 00000000ffe13c10: 0= ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe26fd0 9 ffe27920 0 ) 00000000ffe13c18: do?branch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe26fd0 9 ffe27920 ) 00000000ffe13c40: find-rel-dev ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe2afa0 ffffffffffffffff ) 00000000ffe13c48: 0= ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe2afa0 0 ) 00000000ffe13c50: do?branch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe2afa0 ) 00000000ffe13c70: true ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe2afa0 ffffffffffffffff ) 00000000ffe13c78: (semis) [ Finished find-package ] : open-package ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe2afa0 ) 00000000ffe13ca0: create-instance ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4ab98 ) 00000000ffe13ca8: dup ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4ab98 ffe4ab98 ) 00000000ffe13cb0: 0= ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4ab98 0 ) 00000000ffe13cb8: do?branch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4ab98 ) 00000000ffe13ce0: >r ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ) 00000000ffe13ce8: strdup ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ) 00000000ffe13cf0: r@ ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4ab98 ) 00000000ffe13cf8: >in.arguments ( 1 ffe2fbf0 ffe4a818 ffe4ab88 0 0 ffe4abe0 ) 00000000ffe13d00: 2! ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ) 00000000ffe13d08: (") ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe13d18 4 ) 00000000ffe13d20: r@ ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe13d18 4 ffe4ab98 ) 00000000ffe13d28: (lit) ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe13d18 4 ffe4ab98 ffe13a88 ) 00000000ffe13d38: catch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffffffffffffffff 0 ) 00000000ffe13d40: do?branch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffffffffffffffff ) 00000000ffe13d60: do?branch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ) 00000000ffe13d70: r> ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe4ab98 ) 00000000ffe13d78: dobranch ( 1 ffe2fbf0 ffe4a818 ffe4ab88 ffe4ab98 ) 00000000ffe13da0: (semis) [ Finished open-package ] Unhandled Exception 0x0000000008000000 PC = 0x00000000ffd10e54 NPC = 0x00000000ffd10e58 Stopping execution
-------- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.