Last active
June 26, 2017 16:13
-
-
Save misterdjules/f0bc7b42de7f9ee72e9535f0ce361ea0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py | |
index c400523b0..34ec1716e 100644 | |
--- a/deps/v8/tools/gen-postmortem-metadata.py | |
+++ b/deps/v8/tools/gen-postmortem-metadata.py | |
@@ -195,7 +195,6 @@ consts_misc = [ | |
'value': 'SharedFunctionInfo::StartPositionBits::kMask' }, | |
{ 'name': 'sharedfunctioninfo_start_position_shift', | |
'value': 'SharedFunctionInfo::StartPositionBits::kShift' }, | |
- | |
{ 'name': 'jsarray_buffer_was_neutered_mask', | |
'value': 'JSArrayBuffer::WasNeutered::kMask' }, | |
{ 'name': 'jsarray_buffer_was_neutered_shift', | |
@@ -266,6 +265,7 @@ extras_accessors = [ | |
'SeqTwoByteString, chars, char, kHeaderSize', | |
'SharedFunctionInfo, code, Code, kCodeOffset', | |
'SharedFunctionInfo, scope_info, ScopeInfo, kScopeInfoOffset', | |
+ 'SharedFunctionInfo, function_token_position, int, kFunctionTokenPositionOffset', | |
'SlicedString, parent, String, kParentOffset', | |
'Code, instruction_start, uintptr_t, kHeaderSize', | |
'Code, instruction_size, int, kInstructionSizeOffset', | |
diff --git a/src/v8abbr.h b/src/v8abbr.h | |
index 5c5e7e244..8981126f2 100644 | |
--- a/src/v8abbr.h | |
+++ b/src/v8abbr.h | |
@@ -85,14 +85,14 @@ | |
#define V8_OFF_FUNC_SHARED \ | |
V8_OFF_HEAP(V8DBG_CLASS_JSFUNCTION__SHARED__SHAREDFUNCTIONINFO) | |
-#define V8_OFF_SHARED_NAME \ | |
- V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__NAME__OBJECT) | |
+#define V8_OFF_RAW_NAME \ | |
+ V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__RAW_NAME__OBJECT) | |
#define V8_OFF_SHARED_IDENT \ | |
V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__FUNCTION_IDENTIFIER__OBJECT) | |
#define V8_OFF_SHARED_SCRIPT \ | |
V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__SCRIPT__OBJECT) | |
#define V8_OFF_SHARED_FUNTOK \ | |
- V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__FUNCTION_TOKEN_POSITION__SMI) | |
+ V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__FUNCTION_TOKEN_POSITION__INT) | |
#define V8_OFF_SCRIPT_NAME \ | |
V8_OFF_HEAP(V8DBG_CLASS_SCRIPT__NAME__OBJECT) | |
#define V8_OFF_SCRIPT_LENDS \ | |
diff --git a/src/v8ustack.d b/src/v8ustack.d | |
index 8faaf467a..1a8a1fd8b 100644 | |
--- a/src/v8ustack.d | |
+++ b/src/v8ustack.d | |
@@ -21,6 +21,7 @@ | |
((value & V8_SmiTagMask) == V8_SmiTag) | |
#define SMI_VALUE(value) \ | |
((uint32_t) ((value) >> V8_SmiValueShift)) | |
+#define NO_SHARED_FUNCTION_NAME_SENTINEL NULL | |
/* | |
* Heap objects usually start off with a Map pointer, itself another heap | |
@@ -372,7 +373,8 @@ dtrace:helper:ustack: | |
this->shared = (off_t) 0; | |
this->map = (off_t) 0; | |
this->attrs = 0; | |
- this->funcnamestr = (off_t) 0; | |
+ this->funcrawnamestr = (off_t) 0; | |
+ this->hassharedname = 0; | |
this->funcnamelen = 0; | |
this->funcnameattrs = 0; | |
this->script = (off_t) 0; | |
@@ -515,9 +517,19 @@ dtrace:helper:ustack: | |
this->attrs = 0; | |
this->shared = COPYIN_PTR(this->func + V8_OFF_FUNC_SHARED); | |
- this->funcnamestr = COPYIN_PTR(this->shared + V8_OFF_SHARED_NAME); | |
- LOAD_STRFIELDS(this->funcnamestr, this->funcnamelen, | |
- this->funcnameattrs); | |
+ this->funcrawnamestr = COPYIN_PTR(this->shared + V8_OFF_RAW_NAME); | |
+ this->hassharedname = this->funcrawnamestr != | |
+ NO_SHARED_FUNCTION_NAME_SENTINEL; | |
+} | |
+ | |
+dtracr:helper:ustack: | |
+/!this->done && this->hassharedname/ | |
+{ | |
+ LOAD_STRFIELDS(this->funcrawnamestr, this->funcnamelen, | |
+ this->funcnameattrs); | |
} | |
dtrace:helper:ustack: | |
@@ -532,8 +544,8 @@ dtrace:helper:ustack: | |
APPEND_CHR('s'); | |
APPEND_CHR(' '); | |
- this->funcnamestr = COPYIN_PTR(this->shared + V8_OFF_SHARED_IDENT); | |
- LOAD_STRFIELDS(this->funcnamestr, this->funcnamelen, | |
+ this->funcrawnamestr = COPYIN_PTR(this->shared + V8_OFF_SHARED_IDENT); | |
+ LOAD_STRFIELDS(this->funcrawnamestr, this->funcnamelen, | |
this->funcnameattrs); | |
} | |
@@ -545,7 +557,7 @@ dtrace:helper:ustack: | |
APPEND_CHR(')'); | |
} | |
-APPEND_V8STR(this->funcnamestr, this->funcnamelen, this->funcnameattrs) | |
+APPEND_V8STR(this->funcrawnamestr, this->funcnamelen, this->funcnameattrs) | |
/* | |
* Now look for the name of the script where the function was defined. The | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment