[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