Handle [native code] stack frames
Reviewed By: ashwinb, javache Differential Revision: D5104078 fbshipit-source-id: edefc7cb7e1d401155372c917875ad8b14af94e9
This commit is contained in:
parent
a975c1e834
commit
0ee8786cd8
|
@ -174,17 +174,21 @@ public class StackTraceHelper {
|
||||||
String[] stackTrace = stack.split("\n");
|
String[] stackTrace = stack.split("\n");
|
||||||
StackFrame[] result = new StackFrame[stackTrace.length];
|
StackFrame[] result = new StackFrame[stackTrace.length];
|
||||||
for (int i = 0; i < stackTrace.length; ++i) {
|
for (int i = 0; i < stackTrace.length; ++i) {
|
||||||
Matcher matcher = STACK_FRAME_PATTERN.matcher(stackTrace[i]);
|
if (stackTrace[i].equals("[native code]")) {
|
||||||
if (!matcher.find()) {
|
result[i] = new StackFrameImpl(null, stackTrace[i], -1, -1);
|
||||||
throw new IllegalArgumentException(
|
} else {
|
||||||
|
Matcher matcher = STACK_FRAME_PATTERN.matcher(stackTrace[i]);
|
||||||
|
if (!matcher.find()) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
"Unexpected stack frame format: " + stackTrace[i]);
|
"Unexpected stack frame format: " + stackTrace[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
result[i] = new StackFrameImpl(
|
result[i] = new StackFrameImpl(
|
||||||
matcher.group(2),
|
matcher.group(2),
|
||||||
matcher.group(1) == null ? "(unknown)" : matcher.group(1),
|
matcher.group(1) == null ? "(unknown)" : matcher.group(1),
|
||||||
Integer.parseInt(matcher.group(3)),
|
Integer.parseInt(matcher.group(3)),
|
||||||
Integer.parseInt(matcher.group(4)));
|
Integer.parseInt(matcher.group(4)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue