Originally created by: peter.ry...@gmail.com
Originally owned by: peter.ry...@gmail.com
SDK/Debugger version: 0.3.6
Google Chrome/V8 Embedder + version: Node.JS
What steps will reproduce the problem?
1. In Expressions view add "({ "3302611133": 1, "8302611133" : 3 })" and have it evaluated.
2. Expand properties.
What is the expected result?
2 properties are displayed.
What happens instead?
Expressions view crashes.
Please provide additional information below. If possible, attach a
(reduced) test-case.
java.lang.NumberFormatException: For input string: "3302611133"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:484)
at java.lang.Integer.valueOf(Integer.java:570)
at org.chromium.debug.core.model.StackFrame$1.getNameObject(StackFrame.java:228)
at org.chromium.debug.core.model.StackFrame$1.compare(StackFrame.java:221)
at org.chromium.debug.core.model.StackFrame$1.compare(StackFrame.java:1)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324)
at java.util.TimSort.sort(TimSort.java:189)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:1347)
at java.util.Collections.sort(Collections.java:217)
at org.chromium.debug.core.model.StackFrame.wrapVariables(StackFrame.java:88)
at org.chromium.debug.core.model.Value.calculateVariables(Value.java:73)
at org.chromium.debug.core.model.ValueBase$ValueWithLazyVariables.getVariables(ValueBase.java:81)
at org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.getValueChildren(VariableContentProvider.java:166)
at org.eclipse.debug.internal.ui.model.elements.ExpressionContentProvider.getAllChildren(ExpressionContentProvider.java:193)
at org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.getChildCount(VariableContentProvider.java:48)
at org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.retrieveChildCount(ElementContentProvider.java:114)
at org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$2.run(ElementContentProvider.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
Issue 75 has been merged into this issue.
Related
Tickets:
#75View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
See a related issue https://code.google.com/p/chromedevtools/issues/detail?id=77
Related
Tickets: #77
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: redsandro
I think, since the "strings" are parsed as [numbers], the object might get parsed as array, and the few billion indices between the numbers get assigned 'undefined' automatically, as this is how arrays internally work (and was the reason for using objects in stead of arrays in the first place, which lead to my original bugreport).
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
Sander,
could you please expand your last comment. Particularly, what "parsed as array" means.
Peter
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: redsandro
I have seen this behavior in a NodeJS app I am working on. NodeJS is build on V8. In NodeJS/javascript, when you define an array with two big integers as key like so:
var ar = [];
ar[1000000000] = 1;
ar[3302611133] = 3;
internally, all keys in between are set in memory like so:
ar[1000000000] = 1;
ar[1000000001] = undefined;
// ...
ar[3302611132] = undefined;
ar[3302611133] = 3;
You won't see this in the Variables Explorer, but memory will fill and the V8 (nodejs) application will crash.
This looks a lot like what happens if you use an {object} in the way described by this bug, as long as you use numbers (as string) that are parsed as integers like in bug #77.
Except, this bug with the object only happens in the Variables Explorer or the Expressions View in Eclipse, not in the actual NodeJS program. Hence, it feels like - on the devtools side of things - the object is internally somehow converted to array which causes the crash.
I hope this makes more sense.
Related
Tickets: #77
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: redsandro
As if the Variables panel or Expressions panel run out of reserved memory and crash, just like the app does with arrays.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
Oh, I see. It's a good guess, but in fact it's unrelated. It's just a slightly inaccurate code in Debugger, the fix is ready and soon will be landed: http://codereview.chromium.org/10913231/
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: redsandro
Nice, thanks.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
Fixed in HEAD
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: peter.ry...@gmail.com
Fixed in 0.3.8
Status: Fixed
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: redsandro
Nice!