diff options
author | Dave Pacheco <dap@joyent.com> | 2012-03-28 10:26:10 -0700 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2012-04-01 00:14:36 +0000 |
commit | cc15299c32b4fc39c2eb2c08b0265e462f875544 (patch) | |
tree | 2e3c9b283e29e925b8ac4072d67671d164c218de /src/v8abbr.h | |
parent | 7bdeed203991d35a56e7448540e3b74387c65d0d (diff) | |
download | node-new-cc15299c32b4fc39c2eb2c08b0265e462f875544.tar.gz |
build: add support for DTrace and postmortem
* fixes #2110
* includes V8 postmortem metadata in Solaris builds
* adds GYP support for DTrace probes and ustack helper
* ustack helper derives constants dynamically from libv8_base.a
* build with DTrace support by default on SunOS
Diffstat (limited to 'src/v8abbr.h')
-rw-r--r-- | src/v8abbr.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/v8abbr.h b/src/v8abbr.h new file mode 100644 index 0000000000..ac4a169395 --- /dev/null +++ b/src/v8abbr.h @@ -0,0 +1,86 @@ +/* + * This header defines short names for V8 constants for use by the ustack + * helper. + */ + +#ifndef V8_ABBR_H +#define V8_ABBR_H + +/* Frame pointer offsets */ +#define V8_OFF_FP_FUNC ((uint32_t)V8DBG_OFF_FP_FUNCTION) +#define V8_OFF_FP_CONTEXT ((uint32_t)V8DBG_OFF_FP_CONTEXT) +#define V8_OFF_FP_MARKER ((uint32_t)V8DBG_OFF_FP_MARKER) + +/* Stack frame types */ +#define V8_FT_ENTRY V8DBG_FRAMETYPE_ENTRYFRAME +#define V8_FT_ENTRYCONSTRUCT V8DBG_FRAMETYPE_ENTRYCONSTRUCTFRAME +#define V8_FT_EXIT V8DBG_FRAMETYPE_EXITFRAME +#define V8_FT_JAVASCRIPT V8DBG_FRAMETYPE_JAVASCRIPTFRAME +#define V8_FT_OPTIMIZED V8DBG_FRAMETYPE_OPTIMIZEDFRAME +#define V8_FT_INTERNAL V8DBG_FRAMETYPE_INTERNALFRAME +#define V8_FT_CONSTRUCT V8DBG_FRAMETYPE_CONSTRUCTFRAME +#define V8_FT_ADAPTOR V8DBG_FRAMETYPE_ARGUMENTSADAPTORFRAME + +/* Identification masks and tags */ +#define V8_SmiTagMask V8DBG_SMITAGMASK +#define V8_SmiTag V8DBG_SMITAG +#define V8_SmiValueShift V8_SmiTagMask + +#define V8_HeapObjectTagMask V8DBG_HEAPOBJECTTAGMASK +#define V8_HeapObjectTag V8DBG_HEAPOBJECTTAG + +#define V8_IsNotStringMask V8DBG_ISNOTSTRINGMASK +#define V8_StringTag V8DBG_STRINGTAG + +#define V8_StringEncodingMask V8DBG_STRINGENCODINGMASK +#define V8_AsciiStringTag V8DBG_ASCIISTRINGTAG + +#define V8_StringRepresentationMask V8DBG_STRINGREPRESENTATIONMASK +#define V8_SeqStringTag V8DBG_SEQSTRINGTAG +#define V8_ConsStringTag V8DBG_CONSSTRINGTAG +#define V8_ExternalStringTag V8DBG_EXTERNALSTRINGTAG + +/* Instance types */ +#define V8_IT_FIXEDARRAY V8DBG_TYPE_FIXEDARRAY__FIXED_ARRAY_TYPE +#define V8_IT_CODE V8DBG_TYPE_CODE__CODE_TYPE + +/* Node-specific offsets */ +#define NODE_OFF_EXTSTR_DATA 0x4 + +/* Heap class->field offsets */ +#define V8_OFF_HEAP(off) ((off) - 1) + +#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_SHARED_INFERRED \ + V8_OFF_HEAP(V8DBG_CLASS_SHAREDFUNCTIONINFO__INFERRED_NAME__STRING) +#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) +#define V8_OFF_SCRIPT_NAME \ + V8_OFF_HEAP(V8DBG_CLASS_SCRIPT__NAME__OBJECT) +#define V8_OFF_SCRIPT_LENDS \ + V8_OFF_HEAP(V8DBG_CLASS_SCRIPT__LINE_ENDS__OBJECT) +#define V8_OFF_STR_LENGTH \ + V8_OFF_HEAP(V8DBG_CLASS_STRING__LENGTH__SMI) +#define V8_OFF_STR_CHARS \ + V8_OFF_HEAP(V8DBG_CLASS_SEQASCIISTRING__CHARS__CHAR) +#define V8_OFF_CONSSTR_CAR \ + V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__FIRST__STRING) +#define V8_OFF_CONSSTR_CDR \ + V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__SECOND__STRING) +#define V8_OFF_EXTSTR_RSRC \ + V8_OFF_HEAP(V8DBG_CLASS_EXTERNALSTRING__RESOURCE__OBJECT) +#define V8_OFF_FA_SIZE \ + V8_OFF_HEAP(V8DBG_CLASS_FIXEDARRAYBASE__LENGTH__SMI) +#define V8_OFF_FA_DATA \ + V8_OFF_HEAP(V8DBG_CLASS_FIXEDARRAY__DATA__UINTPTR_T) +#define V8_OFF_HEAPOBJ_MAP \ + V8_OFF_HEAP(V8DBG_CLASS_HEAPOBJECT__MAP__MAP) +#define V8_OFF_MAP_ATTRS \ + V8_OFF_HEAP(V8DBG_CLASS_MAP__INSTANCE_ATTRIBUTES__INT) + +#endif /* V8_ABBR_H */ |