Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View tjfontaine's full-sized avatar

Timothy J Fontaine tjfontaine

View GitHub Profile
Values are time in nanoseconds
pre-monotonic change
ready
value ------------- Distribution ------------- count
8388608 | 0
16777216 |@@@ 188
33554432 |@@@@@@@@@@ 624
67108864 |@@@@@@ 354
diff --git a/src/node.cc b/src/node.cc
index ac906f0..82ce0b2 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -1714,13 +1714,10 @@ static Handle<Value> Uptime(const Arguments& args) {
HandleScope scope;
double uptime;
- uv_err_t err = uv_uptime(&uptime);
+ uv_update_time(uv_default_loop());
(lldb) bt
* thread #1: tid = 0x0000, 0x0000000100031429 node`node::StreamWrapCallbacks::TryWrite(uv_buf_t**, unsigned long*) [inlined] node::StreamWrapCallbacks::wrap(this=0x0000000101900020, this=0x0000000000000000) const + 4 at stream_wrap.h:137, stop reason = signal SIGSTOP
* frame #0: 0x0000000100031429 node`node::StreamWrapCallbacks::TryWrite(uv_buf_t**, unsigned long*) [inlined] node::StreamWrapCallbacks::wrap(this=0x0000000101900020, this=0x0000000000000000) const + 4 at stream_wrap.h:137
frame #1: 0x0000000100031425 node`node::StreamWrapCallbacks::TryWrite(this=0x0000000101900020, bufs=0x00000001006066a0, count=0x0000000101052bc0) + 23 at stream_wrap.cc:614
frame #2: 0x0000000100006e65 node`node::HandleWrap::OnClose(handle=<unavailable>) + 289 at handle_wrap.cc:135
frame #3: 0x0000000100148e61 node`uv_run [inlined] uv__finish_close(handle=<unavailable>) + 449 at core.c:214
frame #4: 0x0000000100148ddc node`uv_run [inlined] uv__run_closing_handles(loop=<unavailable>) + 50 at core.c:22
struct simpleStruct {
int a;
char* b;
};
typedef struct simpleStruct s1;
struct myStruct {
int a;
char* b;

Keybase proof

I hereby claim:

  • I am tjfontaine on github.
  • I am tjfontaine (https://keybase.io/tjfontaine) on keybase.
  • I have a public key whose fingerprint is 7937 DFD2 AB06 298B 2293 C318 7D33 FF9D 0246 406D

To claim this, I am signing this object:

diff --git a/lib/_http_server.js b/lib/_http_server.js
index eab7d64..8b2d2b3 100644
--- a/lib/_http_server.js
+++ b/lib/_http_server.js
@@ -349,6 +349,14 @@ function connectionListener(socket) {
// TODO(isaacs): Move all these functions out of here
function socketOnError(e) {
self.emit('clientError', e, this);
+
+ if (e.syscall === 'write' && this._httpMessage) {
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index e1636c8..e65efd7 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -544,7 +544,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
// however, don't suppress the throwing behavior for this.
function onerror(er) {
debug('onerror', er);
- unpipe();
+ unpipe(er);

MDB is unlike most debuggers you've experienced.

It is not a source level debugger like gdb or lldb or even Node's builtin debugger

Generally used for postmortem analysis.

Postmortem is for Production and Development

We operate mostly on core files, though you can attach to running processes as well.

* thread #1: tid = 0x3dbfe, 0x000000010014a076 node`uv__signal_handler [inlined] uv__signal_tree_s_RB_NEXT(elm=<unavailable>) + 24 at signal.c:52, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x79)
frame #0: 0x000000010014a076 node`uv__signal_handler [inlined] uv__signal_tree_s_RB_NEXT(elm=<unavailable>) + 24 at signal.c:52
frame #1: 0x000000010014a05e node`uv__signal_handler(signum=20) + 167 at signal.c:151
frame #2: 0x00007fff98f095aa libsystem_platform.dylib`_sigtramp + 26
frame #3: 0x00007fff93c2264b libsystem_kernel.dylib`kevent + 11
frame #4: 0x000000010014932e node`uv__chld(handle=<unavailable>, signum=<unavailable>) + 330 at process.c:116
frame #5: 0x0000000100144909 node`uv_run(loop=0x0000000100e00950, mode=UV_RUN_DEFAULT) + 271 at core.c:285
frame #6: 0x000000010002b2a1 node`node::SyncProcessRunner::TryInitializeAndRunLoop(this=0x00007fff5fbfefe0, options=<unavailable>) + 261 at spawn_sync.cc:495
frame #7: 0x000000010002af0a node`node:
# 1 "/usr/include/sys/ucontext.h" 1 3 4
# 36 "/usr/include/sys/ucontext.h" 3 4
# 1 "/usr/include/sys/regset.h" 1 3 4
# 39 "/usr/include/sys/regset.h" 3 4
extern "C" {
# 158 "/usr/include/sys/regset.h" 3 4
typedef int greg_t;
# 168 "/usr/include/sys/regset.h" 3 4
typedef greg_t gregset_t[19];
# 189 "/usr/include/sys/regset.h" 3 4