[M3devel] I don't know what changed, or when, but thanks!

Rodney M. Bates rodney_bates at lcwb.coop
Mon Jul 8 17:36:29 CEST 2013


If you get m3gdb to realize this is modula-3 code, there will be a lot
more useful info in the backtrace, like parameter values.  Probably just
doing a 'frame 17', or any M3 frame will do it, or 'set lang Modula-3'.

If you are using the head compiler and debugger, you will need very
recent ones (perhaps in the last month?), as changes in the code
generator created some regressions.  All that I have seen are now
fixed in the current head.

On 07/08/2013 08:45 AM, Hendrik Boom wrote:
> Years ago, when a Modula 3 program failed because I called an absent
> method, it was difficult findig where the error was.
>
> But yesterday, I just ran the program in m3gdb and got a backtrace
> after failure.
>
> Of course the backtrace was full of apparent gibberish, but right in
> the middle is said:
>
>      at ../src/runtime/common/RTException.m3:25
> #14 0xb6e3631c in Raise (act=Invalid C/C++ type code 30 in symbol
> table.
> ) at ../src/runtime/ex_frame/RTExFrame.m3:29
> #15 0xb6e30d1d in Fail (rte=Invalid C/C++ type code 23 in symbol table.
> ) at ../src/runtime/common/RTType.m3:850
> #16 0xb6e30c4e in UndefinedMethod (self=Invalid C/C++ type code 46 in
> symbol table.
> )
>      at ../src/runtime/common/RTType.m3:834
> #17 0x08063d45 in shift (new=Invalid C/C++ type code 26 in symbol
> table.
> ) at ../src/Parse.m3:115
> ---Type <return> to continue, or q <return> to quit---
> #18 0x08062fc4 in parse (input=Invalid C/C++ type code 26 in symbol
> table.
> ) at ../src/Parse.m3:354
> #19 0x08065be3 in Main (mode=Invalid C/C++ type code 39 in symbol
> table.
> ) at ../src/Main.m3:202
>
>
> So it was quite clear I had to look at ../src/Parse.m3:115, and it was
> obvious where I had left our a shift := shift line in an OVERRIDES
> list.
>
> -- hendrik
>
>




More information about the M3devel mailing list