use of flash.tools.debugger.Location in project intellij-plugins by JetBrains.
the class DebugCLI method dumpBreakLine.
void dumpBreakLine(boolean postStep, StringBuilder sb) throws NotConnectedException {
int bp = -1;
//$NON-NLS-1$
String name = getLocalizationManager().getLocalizedTextString("unknownFilename");
int line = -1;
// clear our current frame display
propertyPut(DISPLAY_FRAME_NUMBER, 0);
/* dump a context line to the console */
Location l = getCurrentLocation();
// figure out why we stopped
int reason = SuspendReason.Unknown;
try {
reason = m_session.suspendReason();
} catch (PlayerDebugException pde) {
}
// then see if it because of a swfloaded event
if (reason == SuspendReason.ScriptLoaded) {
// since the player takes a long time to provide swf/swd, try 80 * 250ms = ~20s
if (propertyGet(METADATA_ATTEMPTS) > 0)
try {
waitForMetaData(80);
} catch (InProgressException ipe) {
}
m_fileInfo.setDirty();
processEvents();
propagateBreakpoints();
//$NON-NLS-1$
sb.append(getLocalizationManager().getLocalizedTextString("additionalCodeLoaded"));
sb.append(m_newline);
if (resolveBreakpoints(sb))
//$NON-NLS-1$
sb.append(getLocalizationManager().getLocalizedTextString("setAdditionalBreakpoints") + m_newline);
else
//$NON-NLS-1$
sb.append(getLocalizationManager().getLocalizedTextString("fixBreakpoints") + m_newline);
} else if (l == null || l.getFile() == null) {
// no idea where we are ?!?
propertyPut(LAST_FRAME_DEPTH, 0);
//$NON-NLS-1$
sb.append(getLocalizationManager().getLocalizedTextString("executionHalted"));
sb.append(' ');
/** disable this line (and enable the one after) if implementation Extensions are not provided */
appendBreakInfo(sb);
//sb.append("unknown location");
} else {
SourceFile file = l.getFile();
name = file.getName();
line = l.getLine();
String funcName = file.getFunctionNameForLine(m_session, line);
// where were we last time
int lastModule = propertyGet(LIST_MODULE);
int lastDepth = propertyGet(LAST_FRAME_DEPTH);
int thisModule = file.getId();
// triggered via getCurrentLocation()
int thisDepth = propertyGet(CURRENT_FRAME_DEPTH);
// mark where we stopped
propertyPut(LAST_FRAME_DEPTH, thisDepth);
// if we have changed our context or we are not spitting out source then dump our location
if (!postStep || lastModule != thisModule || lastDepth != thisDepth) {
// is it a fault?
String reasonForHalting;
if (reason == SuspendReason.Fault || reason == SuspendReason.StopRequest) {
StringBuilder s = new StringBuilder();
appendReason(s, reason);
reasonForHalting = s.toString();
} else // if its a breakpoint add that information
if ((bp = enabledBreakpointIndexOf(l)) > -1) {
Map<String, Object> args = new HashMap<String, Object>();
//$NON-NLS-1$
args.put("breakpointNumber", Integer.toString(breakpointAt(bp).getId()));
//$NON-NLS-1$
reasonForHalting = getLocalizationManager().getLocalizedTextString("hitBreakpoint", args);
} else {
//$NON-NLS-1$
reasonForHalting = getLocalizationManager().getLocalizedTextString("executionHalted");
}
Map<String, Object> args = new HashMap<String, Object>();
//$NON-NLS-1$
args.put("reasonForHalting", reasonForHalting);
//$NON-NLS-1$
args.put("fileAndLine", name + ':' + line);
String formatString;
if (funcName != null) {
//$NON-NLS-1$
args.put("functionName", funcName);
//$NON-NLS-1$
formatString = "haltedInFunction";
} else {
//$NON-NLS-1$
formatString = "haltedInFile";
}
sb.append(getLocalizationManager().getLocalizedTextString(formatString, args));
if (!m_fullnameOption)
sb.append(m_newline);
}
// set current listing poistion and emit emacs trigger
setListingPosition(thisModule, line);
// dump our source line if not in emacs mode
if (!m_fullnameOption)
appendSource(sb, file.getId(), line, file.getLine(line), false);
}
}
Aggregations