Lines 149-155
Link Here
|
149 |
static final Logger LOG = Logger.getLogger(GdbDebuggerImpl.class.toString()); |
149 |
static final Logger LOG = Logger.getLogger(GdbDebuggerImpl.class.toString()); |
150 |
|
150 |
|
151 |
private final GdbHandlerExpert handlerExpert; |
151 |
private final GdbHandlerExpert handlerExpert; |
152 |
private MILocation homeLoc; |
152 |
private volatile MILocation homeLoc; |
153 |
private boolean dynamicType; |
153 |
private boolean dynamicType; |
154 |
|
154 |
|
155 |
private DisModel disModel = new DisModel(); |
155 |
private DisModel disModel = new DisModel(); |
Lines 2554-2560
Link Here
|
2554 |
} |
2554 |
} |
2555 |
|
2555 |
|
2556 |
stackUpdater.treeChanged(); // causes a pull |
2556 |
stackUpdater.treeChanged(); // causes a pull |
2557 |
disassembly.stateUpdated(); |
|
|
2558 |
} |
2557 |
} |
2559 |
|
2558 |
|
2560 |
/* |
2559 |
/* |
Lines 3749-3755
Link Here
|
3749 |
MIValue frameValue = (results != null) ? results.valueOf(MI_FRAME) : null; |
3748 |
MIValue frameValue = (results != null) ? results.valueOf(MI_FRAME) : null; |
3750 |
MITList frameTuple; |
3749 |
MITList frameTuple; |
3751 |
MITList stack; |
3750 |
MITList stack; |
3752 |
boolean visited = false; |
|
|
3753 |
// Mac 10.4 gdb provides no "frame" attribute |
3751 |
// Mac 10.4 gdb provides no "frame" attribute |
3754 |
|
3752 |
|
3755 |
// For the scenario that stack view is closed and local view |
3753 |
// For the scenario that stack view is closed and local view |
Lines 3761-3779
Link Here
|
3761 |
} |
3759 |
} |
3762 |
|
3760 |
|
3763 |
if (srcResults != null) { |
3761 |
if (srcResults != null) { |
|
|
3762 |
boolean visited = false; |
3764 |
stack = srcResults.valueOf("stack").asList(); // NOI18N |
3763 |
stack = srcResults.valueOf("stack").asList(); // NOI18N |
3765 |
if (false) { |
3764 |
frameValue = ((MIResult) stack.asList().get(0)).value(); |
3766 |
// We have information about what src location we're |
3765 |
frameTuple = frameValue.asTuple(); |
3767 |
// stopped in. |
|
|
3768 |
if (frameValue != null) |
3769 |
frameTuple = frameValue.asTuple(); |
3770 |
homeLoc = MILocation.make(this, frameTuple, srcResults, false, stack.size(), breakpoint); |
3771 |
|
3772 |
} else { |
3773 |
frameValue = ((MIResult)stack.asList().get(0)).value(); |
3774 |
frameTuple = frameValue.asTuple(); |
3775 |
homeLoc = MILocation.make(this, frameTuple, null, false, stack.size(), breakpoint); |
3776 |
} |
3777 |
|
3766 |
|
3778 |
// find the first frame with source info if dis was not requested |
3767 |
// find the first frame with source info if dis was not requested |
3779 |
for (MITListItem stf : stack.asList()) { |
3768 |
for (MITListItem stf : stack.asList()) { |
Lines 3783-3798
Link Here
|
3783 |
} |
3772 |
} |
3784 |
visited = true; |
3773 |
visited = true; |
3785 |
} |
3774 |
} |
3786 |
|
3775 |
homeLoc = MILocation.make(this, frameTuple, srcResults, visited, stack.size(), breakpoint); |
3787 |
state().isUpAllowed = !homeLoc.bottomframe(); |
3776 |
state().isUpAllowed = !homeLoc.bottomframe(); |
3788 |
state().isDownAllowed = !homeLoc.topframe(); |
3777 |
state().isDownAllowed = !homeLoc.topframe(); |
3789 |
setStack(srcRecord); |
3778 |
setStack(srcRecord); |
3790 |
} else { |
3779 |
} else { |
3791 |
frameTuple = ( frameValue == null ? null : frameValue.asTuple() ); |
3780 |
frameTuple = ( frameValue == null ? null : frameValue.asTuple() ); |
3792 |
stack = null; |
3781 |
stack = null; |
|
|
3782 |
homeLoc = MILocation.make(this, frameTuple, null, false, 0, breakpoint); |
3793 |
} |
3783 |
} |
3794 |
|
3784 |
|
3795 |
setVisitedLocation(MILocation.make(this, frameTuple, null, visited, (stack == null ? 0 :stack.size()), breakpoint)); |
3785 |
setVisitedLocation(homeLoc); |
3796 |
|
3786 |
|
3797 |
// if (get_frames || get_locals) { |
3787 |
// if (get_frames || get_locals) { |
3798 |
// showStackFrames(); |
3788 |
// showStackFrames(); |