report: use LocalTime from DiagnosticFilename · nodejs/node@5c41876 (original) (raw)

`@@ -65,8 +65,7 @@ static void WriteNodeReport(Isolate* isolate,

`

65

65

`const char* trigger,

`

66

66

`const std::string& filename,

`

67

67

` std::ostream& out,

`

68

``

`-

Local stackstr,

`

69

``

`-

TIME_TYPE* tm_struct);

`

``

68

`+

Local stackstr);

`

70

69

`static void PrintVersionInformation(JSONWriter* writer);

`

71

70

`static void PrintJavaScriptStack(JSONWriter* writer,

`

72

71

` Isolate* isolate,

`

`@@ -79,7 +78,6 @@ static void PrintSystemInformation(JSONWriter* writer);

`

79

78

`static void PrintLoadedLibraries(JSONWriter* writer);

`

80

79

`static void PrintComponentVersions(JSONWriter* writer);

`

81

80

`static void PrintRelease(JSONWriter* writer);

`

82

``

`-

static void LocalTime(TIME_TYPE* tm_struct);

`

83

81

``

84

82

`// Global variables

`

85

83

`static std::atomic_int seq = {0}; // sequence number for report filenames

`

`@@ -97,9 +95,6 @@ std::string TriggerNodeReport(Isolate* isolate,

`

97

95

` std::shared_ptr options;

`

98

96

`if (env != nullptr) options = env->isolate_data()->options();

`

99

97

``

100

``

`-

// Obtain the current time.

`

101

``

`-

TIME_TYPE tm_struct;

`

102

``

`-

LocalTime(&tm_struct);

`

103

98

`// Determine the required report filename. In order of priority:

`

104

99

`// 1) supplied on API 2) configured on startup 3) default generated

`

105

100

`if (!name.empty()) {

`

`@@ -147,7 +142,7 @@ std::string TriggerNodeReport(Isolate* isolate,

`

147

142

` }

`

148

143

``

149

144

`WriteNodeReport(isolate, env, message, trigger, filename, *outstream,

`

150

``

`-

stackstr, &tm_struct);

`

``

145

`+

stackstr);

`

151

146

``

152

147

`// Do not close stdout/stderr, only close files we opened.

`

153

148

`if (outfile.is_open()) {

`

`@@ -165,11 +160,7 @@ void GetNodeReport(Isolate* isolate,

`

165

160

`const char* trigger,

`

166

161

` Local stackstr,

`

167

162

` std::ostream& out) {

`

168

``

`-

// Obtain the current time and the pid (platform dependent)

`

169

``

`-

TIME_TYPE tm_struct;

`

170

``

`-

LocalTime(&tm_struct);

`

171

``

`-

WriteNodeReport(

`

172

``

`-

isolate, env, message, trigger, "", out, stackstr, &tm_struct);

`

``

163

`+

WriteNodeReport(isolate, env, message, trigger, "", out, stackstr);

`

173

164

`}

`

174

165

``

175

166

`// Internal function to coordinate and write the various

`

`@@ -180,8 +171,10 @@ static void WriteNodeReport(Isolate* isolate,

`

180

171

`const char* trigger,

`

181

172

`const std::string& filename,

`

182

173

` std::ostream& out,

`

183

``

`-

Local stackstr,

`

184

``

`-

TIME_TYPE* tm_struct) {

`

``

174

`+

Local stackstr) {

`

``

175

`+

// Obtain the current time and the pid.

`

``

176

`+

TIME_TYPE tm_struct;

`

``

177

`+

DiagnosticFilename::LocalTime(&tm_struct);

`

185

178

`uv_pid_t pid = uv_os_getpid();

`

186

179

``

187

180

`// Save formatting for output stream.

`

`@@ -208,23 +201,23 @@ static void WriteNodeReport(Isolate* isolate,

`

208

201

`snprintf(timebuf,

`

209

202

`sizeof(timebuf),

`

210

203

`"%4d-%02d-%02dT%02d:%02d:%02dZ",

`

211

``

`-

tm_struct->wYear,

`

212

``

`-

tm_struct->wMonth,

`

213

``

`-

tm_struct->wDay,

`

214

``

`-

tm_struct->wHour,

`

215

``

`-

tm_struct->wMinute,

`

216

``

`-

tm_struct->wSecond);

`

``

204

`+

tm_struct.wYear,

`

``

205

`+

tm_struct.wMonth,

`

``

206

`+

tm_struct.wDay,

`

``

207

`+

tm_struct.wHour,

`

``

208

`+

tm_struct.wMinute,

`

``

209

`+

tm_struct.wSecond);

`

217

210

` writer.json_keyvalue("dumpEventTime", timebuf);

`

218

211

`#else // UNIX, OSX

`

219

212

`snprintf(timebuf,

`

220

213

`sizeof(timebuf),

`

221

214

`"%4d-%02d-%02dT%02d:%02d:%02dZ",

`

222

``

`-

tm_struct->tm_year + 1900,

`

223

``

`-

tm_struct->tm_mon + 1,

`

224

``

`-

tm_struct->tm_mday,

`

225

``

`-

tm_struct->tm_hour,

`

226

``

`-

tm_struct->tm_min,

`

227

``

`-

tm_struct->tm_sec);

`

``

215

`+

tm_struct.tm_year + 1900,

`

``

216

`+

tm_struct.tm_mon + 1,

`

``

217

`+

tm_struct.tm_mday,

`

``

218

`+

tm_struct.tm_hour,

`

``

219

`+

tm_struct.tm_min,

`

``

220

`+

tm_struct.tm_sec);

`

228

221

` writer.json_keyvalue("dumpEventTime", timebuf);

`

229

222

`struct timeval ts;

`

230

223

`gettimeofday(&ts, nullptr);

`

`@@ -619,14 +612,4 @@ static void PrintRelease(JSONWriter* writer) {

`

619

612

` writer->json_objectend();

`

620

613

`}

`

621

614

``

622

``

`-

static void LocalTime(TIME_TYPE* tm_struct) {

`

623

``

`-

#ifdef _WIN32

`

624

``

`-

GetLocalTime(tm_struct);

`

625

``

`-

#else // UNIX, OSX

`

626

``

`-

struct timeval time_val;

`

627

``

`-

gettimeofday(&time_val, nullptr);

`

628

``

`-

localtime_r(&time_val.tv_sec, tm_struct);

`

629

``

`-

#endif

`

630

``

`-

}

`

631

``

-

632

615

`} // namespace report

`