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

Hendrik Boom hendrik at topoi.pooq.com
Mon Jul 8 15:45:10 CEST 2013


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