report: include information about event loop itself
PR-URL: https://github.com/nodejs/node/pull/25906 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
b1f82e4342
commit
91adbe14b4
@ -215,6 +215,11 @@ is provided below for reference.
|
||||
"is_referenced": false,
|
||||
"address": "0x000000010188f2e0",
|
||||
"details": ""
|
||||
},
|
||||
{
|
||||
"type": "loop",
|
||||
"is_active": true,
|
||||
"address": "0x000055fc7b2cb180"
|
||||
}
|
||||
],
|
||||
"environmentVariables": {
|
||||
|
@ -311,9 +311,18 @@ static void WriteNodeReport(Isolate* isolate,
|
||||
#endif
|
||||
|
||||
writer.json_arraystart("libuv");
|
||||
if (env != nullptr)
|
||||
if (env != nullptr) {
|
||||
uv_walk(env->event_loop(), WalkHandle, static_cast<void*>(&writer));
|
||||
|
||||
writer.json_start();
|
||||
writer.json_keyvalue("type", "loop");
|
||||
writer.json_keyvalue("is_active",
|
||||
static_cast<bool>(uv_loop_alive(env->event_loop())));
|
||||
writer.json_keyvalue("address",
|
||||
ValueToHexString(reinterpret_cast<int64_t>(env->event_loop())));
|
||||
writer.json_end();
|
||||
}
|
||||
|
||||
writer.json_arrayend();
|
||||
|
||||
// Report operating system information
|
||||
|
@ -57,8 +57,15 @@ void GetNodeReport(v8::Isolate* isolate,
|
||||
void ReportEndpoints(uv_handle_t* h, std::ostringstream& out);
|
||||
void WalkHandle(uv_handle_t* h, void* arg);
|
||||
std::string EscapeJsonChars(const std::string& str);
|
||||
|
||||
template <typename T>
|
||||
std::string ValueToHexString(T value);
|
||||
std::string ValueToHexString(T value) {
|
||||
std::stringstream hex;
|
||||
|
||||
hex << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex <<
|
||||
value;
|
||||
return hex.str();
|
||||
}
|
||||
|
||||
// Function declarations - export functions in src/node_report_module.cc
|
||||
void TriggerReport(const v8::FunctionCallbackInfo<v8::Value>& info);
|
||||
|
@ -214,15 +214,6 @@ void WalkHandle(uv_handle_t* h, void* arg) {
|
||||
writer->json_end();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
std::string ValueToHexString(T value) {
|
||||
std::stringstream hex;
|
||||
|
||||
hex << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex <<
|
||||
value;
|
||||
return hex.str();
|
||||
}
|
||||
|
||||
std::string EscapeJsonChars(const std::string& str) {
|
||||
const std::string control_symbols[0x20] = {
|
||||
"\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005",
|
||||
|
Loading…
x
Reference in New Issue
Block a user