8f8d2fe4ca
This change fixes the implementation of the previously introduced API `Runtime.setMaxCallStackSizeToCapture` to work correctly and also apply (consistently) to stack traces captured by V8 when exceptions are thrown. It does so in a fully backwards compatible manner. This change thus makes the previous fix for catapult (which landed in http://crrev.com/c/3347789) effective, and therefore ensures that real world performance benchmarks aren't affected by the use of the `Runtime` domain in the catapult test framework. Note this is basically a reland of crrev.com/c/3361839, but without touching the stack traces for console messages (which led to the regressions in crbug/1283516, crbug/1283523, etc.). Fixed: chromium:1280831 Bug: chromium:1283162, chromium:1278650, chromium:1258599 Bug: chromium:1280803, chromium:1280832, chromium:1280818 Doc: https://bit.ly/v8-cheaper-inspector-stack-traces Change-Id: I3dcec7b75d76ca267fac8bd6fcb2cda60d5e60dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3364086 Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78479}
212 lines
5.0 KiB
Plaintext
212 lines
5.0 KiB
Plaintext
Checks Runtime.setMaxCallStackSizeToCapture.
|
|
|
|
Running test: testBeforeEnable
|
|
{
|
|
code : -32000
|
|
message : Runtime agent is not enabled
|
|
}
|
|
|
|
Running test: testNegativeSize
|
|
{
|
|
code : -32000
|
|
message : maxCallStackSizeToCapture should be non-negative
|
|
}
|
|
|
|
Running test: testConsoleLogBeforeEnable
|
|
{
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Log message.
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
stackTrace : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 10
|
|
functionName : testConsoleLog
|
|
lineNumber : 2
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
}
|
|
timestamp : <timestamp>
|
|
type : log
|
|
}
|
|
|
|
Running test: testConsoleTrace
|
|
Test with max size 0.
|
|
{
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Nested call.
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : trace
|
|
}
|
|
Test with max size 1.
|
|
{
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Nested call.
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
stackTrace : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 12
|
|
functionName : bar
|
|
lineNumber : 7
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
parent : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 4
|
|
functionName : executor
|
|
lineNumber : 16
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
description : setTimeout
|
|
}
|
|
}
|
|
timestamp : <timestamp>
|
|
type : trace
|
|
}
|
|
Test with max size 2.
|
|
{
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Nested call.
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
stackTrace : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 12
|
|
functionName : bar
|
|
lineNumber : 7
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
[1] : {
|
|
columnNumber : 4
|
|
functionName : foo
|
|
lineNumber : 12
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
parent : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 4
|
|
functionName : executor
|
|
lineNumber : 16
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
[1] : {
|
|
columnNumber : 9
|
|
functionName : testConsoleTrace
|
|
lineNumber : 15
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
description : setTimeout
|
|
}
|
|
}
|
|
timestamp : <timestamp>
|
|
type : trace
|
|
}
|
|
|
|
Running test: testException
|
|
Test with max size 0.
|
|
{
|
|
columnNumber : 4
|
|
exception : {
|
|
className : Error
|
|
description : Error at bar (test.js:23:11) at foo (test.js:27:5) at testThrow (test.js:30:3) at <anonymous>:1:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
exceptionId : <exceptionId>
|
|
lineNumber : 22
|
|
scriptId : <scriptId>
|
|
text : Uncaught
|
|
}
|
|
Test with max size 1.
|
|
{
|
|
columnNumber : 4
|
|
exception : {
|
|
className : Error
|
|
description : Error at bar (test.js:23:11) at foo (test.js:27:5) at testThrow (test.js:30:3) at <anonymous>:1:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
exceptionId : <exceptionId>
|
|
lineNumber : 22
|
|
scriptId : <scriptId>
|
|
stackTrace : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 10
|
|
functionName : bar
|
|
lineNumber : 22
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
}
|
|
text : Uncaught
|
|
}
|
|
Test with max size 2.
|
|
{
|
|
columnNumber : 4
|
|
exception : {
|
|
className : Error
|
|
description : Error at bar (test.js:23:11) at foo (test.js:27:5) at testThrow (test.js:30:3) at <anonymous>:1:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
exceptionId : <exceptionId>
|
|
lineNumber : 22
|
|
scriptId : <scriptId>
|
|
stackTrace : {
|
|
callFrames : [
|
|
[0] : {
|
|
columnNumber : 10
|
|
functionName : bar
|
|
lineNumber : 22
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
[1] : {
|
|
columnNumber : 4
|
|
functionName : foo
|
|
lineNumber : 26
|
|
scriptId : <scriptId>
|
|
url : test.js
|
|
}
|
|
]
|
|
}
|
|
text : Uncaught
|
|
}
|