Skip to content

Commit ab45c0e

Browse files
committed
Expand working group and repo to all diagnostics.
Add additional top level to repo with subfolders for diagnostic domains. Add initial README.md for each domain. Add some initial docs and samples for domains beyond tracing. Move and minor cleanup of AsyncWrap docs and background info on TRACE_EVENT.
1 parent d3a41e9 commit ab45c0e

File tree

14 files changed

+176
-72
lines changed

14 files changed

+176
-72
lines changed

README.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1-
# tracing-wg
1+
# Diagnostics Working Group
2+
The goal of this WG is to ensure Node provides a set of comprehensive, documented, extensible diagnostic protocols, formats, and APIs to enable tool vendors to provide reliable diagnostic tools for Node.
23

3-
Tracing Working Group
4+
Work is divided into several domains:
5+
- [Tracing](./tracing)
6+
- [Profiling](./profiling)
7+
- [Heap and Memory Analysis](./heap-memory)
8+
- [Step Debugging](./debugging)
49

5-
# Members
10+
Background, reference documentation, samples, and discussion for each domain is contained within its folder.
611

12+
Work needed includes:
13+
- Collect, understand, and document existing diagnostic capabilities and entry-points throughout Node, V8, and other components.
14+
- Collect and document projects and products providing diagnostics for Node with brief description of their technical architecture and sponsoring organizations.
15+
- Identify opportunities and gaps, then propose and implement solutions.
16+
17+
### Logistics
18+
- Monthly Meetings
19+
- Biannual F2F
20+
21+
### Members
722
* @bnoordhuis
823
* @sam-github
924
* @othiym23
@@ -28,3 +43,5 @@ Tracing Working Group
2843
* @matthewloring
2944
* @pmuellr
3045
* @jeffolfert
46+
* @joshgav
47+

debugging/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Debugging API
2+
- [Chrome Debugging Protocol](https://chromedevtools.github.io/debugger-protocol-viewer/)
3+
- [V8 Debugging Protocol](https://github.com/v8/v8/wiki/Debugging-Protocol)
4+
5+
Node currently relies on V8's internal Debug API and associated commands and events. The Debug API is published at [v8/include/v8-debug.h](https://github.com/v8/v8/blob/master/include/v8-debug.h), and the message protocol is documented in prose in [the V8 wiki](https://github.com/v8/v8/wiki/Debugging-Protocol) and in code in [v8/src/debug/debug.js#L2341-2372](https://github.com/v8/v8/blob/master/src/debug/debug.js#L2341-L2372).
6+
7+
Node also provides an agent [node/src/debug-agent.h](https://github.com/blob/master/src/debug-agent.h) which relays requests, responses, and events through a TCP socket, and a command-line debugger [node/lib/_debugger.js](https://github.com/blob/master/lib/_debugger.js).
8+
9+
The Chrome/V8 team has deprecated the internal V8 API and command set and proposed replacing it with a subset of the Chrome Debugging Protocol (CrDP), see https://github.com/nodejs/node/issues/2546. CrDP is documented at [https://chromedevtools.github.io/debugger-protocol-viewer/]() and the backing GitHub repo.
10+
11+
The [cyrus-and/chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface) library provides a JS proxy for CrDP.
12+
13+
## Step Debugging Tools
14+
Name | Sponsor
15+
-----|--------
16+
[node-inspector][] | StrongLoop
17+
[JetBrains WebStorm][] | JetBrains
18+
[Visual Studio Code][] | Microsoft
19+
[Node CLI Debugger][] | Node Foundation
20+
[Chrome DevTools][] | Google
21+
[Theseus][] | Adobe Research
22+
23+
[node-inspector]: https://github.com/node-inspector/node-inspector
24+
[JetBrains WebStorm]: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
25+
[Visual Studio Code]: https://github.com/Microsoft/vscode
26+
[Node CLI Debugger]: https://nodejs.org/api/debugger.html
27+
[Chrome DevTools]: https://github.com/ChromeDevTools/devtools-frontend
28+
[Theseus]: https://github.com/adobe-research/theseus
29+

docs/README.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

docs/perf-events/README.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/platform-tracing/README.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

heap-memory/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## Heap and Memory Analysis
2+
The [nodejs/post-mortem](https://github.com/nodejs/post-mortem) WG is responsible for this domain.
3+
4+
### Heap Analysis
5+
- [mdb_v8](https://github.com/joyent/mdb_v8)
6+
- [node-heapdump](https://github.com/bnoordhuis/node-heapdump)
7+
- [llnode](https://github.com/indutny/llnode)
8+
- [IBM IDDE](https://www.ibm.com/developerworks/java/jdk/tools/idde/)
9+
- [Snapshot Utils](https://github.com/bmeck/snapshot-utils)
10+

profiling/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## Profiling for Node
2+
- CPU Profiling
3+
- V8 CPU Profiler: [v8/include/v8-profiler.h](https://github.com/v8/blob/master/include/v8-profiler.h)
4+
- Accessible globally through `--prof` runtime flag, basic processing and display through `--prof-processor` runtime flag
5+
- Intel vTune profiler. Accessible through `--enable-vtune-profiling` compile-time flag.
6+
7+
- Heap Profiling
8+
- V8 Heap Profiler: [v8/include/v8-profiler.h](https://github.com/v8/blob/master/include/v8-profiler.h)
9+
- Heap memory usage stats are available through built-in 'v8' module.
10+
11+
Name | Sponsor
12+
-----|--------
13+
[v8-profiler][] | StrongLoop
14+
[Chrome DevTools][] | Google
15+
16+
[v8-profiler]: https://github.com/node-inspector/v8-profiler
17+
[Chrome DevTools]: https://github.com/ChromeDevTools/devtools-frontend
18+
19+
### Stack Analysis
20+
- [0x](https://github.com/davidmarkclements/0x)
21+
- [StackVis](https://github.com/joyent/node-stackvis)
22+
23+
## Docs
24+
[guides/simple-profiling](https://nodejs.org/en/docs/guides/simple-profiling/)
25+
[paulirish/automated-chrome-profiling](https://github.com/paulirish/automated-chrome-profiling)
26+
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)