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

mika at async.caltech.edu mika at async.caltech.edu
Thu Jul 11 11:08:04 CEST 2013


This is just a pet peeve of mine, but I never remember to capitalize "Modula-3" right.
There is no way to make m3gdb also recognize 

set lang m3
set lang modula3
set lang modula-3
set lang m0dulaIII

etc...?

"Rodney M. Bates" writes:
>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