I ran into this testing unusual cases in our extension of the debugger.
This is an unusual case, so probably not the highest priority, but it
still seems like a bug.
To reproduce:
Load Glorp (just for ProtoObject, which we'll use later).
Define class Foo, subclass of Object.
Add this method:
choose: anObject
anObject ifTrue: [^42]
---
In a workspace, execute:
| foo |
foo := Foo new.
foo choose: ProtoObject new
---
This will legitimately fail with an error, since ProtoObjects do not
understand #mustBeBoolean. (Any class that does not understand
#mustBeBoolean will do, ProtoObject was a handy example.)
Debug this, then select the "Foo>>choose:" context.
A dialog opens saying "N-PC not found in map". It's trying to figure out
what to highlight in the source. It probably *should* highlight the
#ifTrue: send.
The PC at this point is -95.
This seems likely to be a bug in the native compiler, that it is
generating code that can be stopped in but not mapped to a vpc.
For the curious, what I'm actually trying to do is ensure that the GBS
debugger does something reasonable if I step through code that sends
#ifTrue: or #ifFalse: to a forwarder. If this bug were fixed, I think I
actually could make it step through this reasonably.
Regards,
-Martin
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc