Linux localhost 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 23.92.16.63 | : 104.23.253.5
Cant Read [ /etc/named.conf ]
8.1.5
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
nodejs /
contributing /
[ HOME SHELL ]
Name
Size
Permission
Action
doc_img
[ DIR ]
drwxr-xr-x
maintaining
[ DIR ]
drwxr-xr-x
adding-new-napi-api.md
2.55
KB
-rw-r--r--
adding-v8-fast-api.md
5.06
KB
-rw-r--r--
api-documentation.md
15.36
KB
-rw-r--r--
backporting-to-release-lines.m...
5.72
KB
-rw-r--r--
building-node-with-ninja.md
1.72
KB
-rw-r--r--
code-of-conduct.md
2.12
KB
-rw-r--r--
collaborator-guide.md
43.49
KB
-rw-r--r--
commit-queue.md
5.76
KB
-rw-r--r--
components-in-core.md
2.51
KB
-rw-r--r--
cpp-style-guide.md
12.81
KB
-rw-r--r--
diagnostic-tooling-support-tie...
8
KB
-rw-r--r--
feature-request-management.md
3.41
KB
-rw-r--r--
internal-api.md
539
B
-rw-r--r--
investigating-native-memory-le...
30.58
KB
-rw-r--r--
issues.md
3.31
KB
-rw-r--r--
node-postmortem-support.md
2.53
KB
-rw-r--r--
offboarding.md
1.13
KB
-rw-r--r--
primordials.md
21.85
KB
-rw-r--r--
pull-requests.md
24.74
KB
-rw-r--r--
releases-node-api.md
6.63
KB
-rw-r--r--
releases.md
45.29
KB
-rw-r--r--
security-model-strategy.md
2.81
KB
-rw-r--r--
security-release-process.md
10.06
KB
-rw-r--r--
security-steward-on-off-boardi...
1.02
KB
-rw-r--r--
sharing-project-news.md
1.45
KB
-rw-r--r--
static-analysis.md
798
B
-rw-r--r--
strategic-initiatives.md
3.26
KB
-rw-r--r--
streaming-to-youtube.md
4.51
KB
-rw-r--r--
suggesting-social-media-posts....
257
B
-rw-r--r--
technical-priorities.md
6.02
KB
-rw-r--r--
technical-values.md
2.79
KB
-rw-r--r--
using-internal-errors.md
5.05
KB
-rw-r--r--
using-symbols.md
2.33
KB
-rw-r--r--
writing-and-running-benchmarks...
23.5
KB
-rw-r--r--
writing-tests.md
16.05
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : node-postmortem-support.md
# Postmortem support Postmortem metadata are constants present in the final build which can be used by debuggers and other tools to navigate through internal structures of software when analyzing its memory (either on a running process or a core dump). Node.js provides this metadata in its builds for V8 and Node.js internal structures. ## V8 postmortem metadata V8 prefixes all postmortem constants with `v8dbg_`, and they allow inspection of objects on the heap as well as object properties and references. V8 generates those symbols with a script (`deps/v8/tools/gen-postmortem-metadata.py`), and Node.js always includes these constants in the final build. ## Node.js debug symbols Node.js prefixes all postmortem constants with `nodedbg_`, and they complement V8 constants by providing ways to inspect Node.js-specific structures, like `node::Environment`, `node::BaseObject` and its descendants, classes from `src/utils.h` and others. Those constants are declared in `src/node_postmortem_metadata.cc`, and most of them are calculated at compile time. ### Calculating offset of class members Node.js constants referring to the offset of class members in memory are calculated at compile time. Because of that, those class members must be at a fixed offset from the start of the class. That's not a problem in most cases, but it also means that those members should always come after any templated member on the class definition. For example, if we want to add a constant with the offset for `ReqWrap::req_wrap_queue_`, it should be defined after `ReqWrap::req_`, because `sizeof(req_)` depends on the type of T, which means the class definition should be like this: ```cpp template <typename T> class ReqWrap : public AsyncWrap { private: // req_wrap_queue_ comes before any templated member, which places it in a // fixed offset from the start of the class ListNode<ReqWrap> req_wrap_queue_; T req_; }; ``` instead of: ```cpp template <typename T> class ReqWrap : public AsyncWrap { private: T req_; // req_wrap_queue_ comes after a templated member, which means it won't be in // a fixed offset from the start of the class ListNode<ReqWrap> req_wrap_queue_; }; ``` There are also tests on `test/cctest/test_node_postmortem_metadata.cc` to make sure all Node.js postmortem metadata are calculated correctly. ## Tools and references * [llnode](https://github.com/nodejs/llnode): LLDB plugin * [`mdb_v8`](https://github.com/joyent/mdb_v8): mdb plugin * [nodejs/post-mortem](https://github.com/nodejs/post-mortem): Node.js post-mortem working group
Close