@@ -61,7 +61,8 @@ static void WriteNodeReport(Isolate* isolate,
6161 std::ostream& out,
6262 Local<Value> error,
6363 bool compact,
64- bool exclude_network = false );
64+ bool exclude_network = false ,
65+ bool exclude_env = false );
6566static void PrintVersionInformation (JSONWriter* writer,
6667 bool exclude_network = false );
6768static void PrintJavaScriptErrorStack (JSONWriter* writer,
@@ -78,6 +79,7 @@ static void PrintJavaScriptErrorProperties(JSONWriter* writer,
7879static void PrintNativeStack (JSONWriter* writer);
7980static void PrintResourceUsage (JSONWriter* writer);
8081static void PrintGCStatistics (JSONWriter* writer, Isolate* isolate);
82+ static void PrintEnvironmentVariables (JSONWriter* writer);
8183static void PrintSystemInformation (JSONWriter* writer);
8284static void PrintLoadedLibraries (JSONWriter* writer);
8385static void PrintComponentVersions (JSONWriter* writer);
@@ -95,7 +97,8 @@ static void WriteNodeReport(Isolate* isolate,
9597 std::ostream& out,
9698 Local<Value> error,
9799 bool compact,
98- bool exclude_network) {
100+ bool exclude_network,
101+ bool exclude_env) {
99102 // Obtain the current time and the pid.
100103 TIME_TYPE tm_struct;
101104 DiagnosticFilename::LocalTime (&tm_struct);
@@ -251,6 +254,9 @@ static void WriteNodeReport(Isolate* isolate,
251254 writer.json_arrayend ();
252255
253256 // Report operating system information
257+ if (exclude_env == false ) {
258+ PrintEnvironmentVariables (&writer);
259+ }
254260 PrintSystemInformation (&writer);
255261
256262 writer.json_objectend ();
@@ -696,8 +702,7 @@ static void PrintResourceUsage(JSONWriter* writer) {
696702#endif // RUSAGE_THREAD
697703}
698704
699- // Report operating system information.
700- static void PrintSystemInformation (JSONWriter* writer) {
705+ static void PrintEnvironmentVariables (JSONWriter* writer) {
701706 uv_env_item_t * envitems;
702707 int envcount;
703708 int r;
@@ -717,7 +722,10 @@ static void PrintSystemInformation(JSONWriter* writer) {
717722 }
718723
719724 writer->json_objectend ();
725+ }
720726
727+ // Report operating system information.
728+ static void PrintSystemInformation (JSONWriter* writer) {
721729#ifndef _WIN32
722730 static struct {
723731 const char * description;
@@ -917,6 +925,10 @@ std::string TriggerNodeReport(Isolate* isolate,
917925 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
918926 : per_process::cli_options->per_isolate
919927 ->per_env ->report_exclude_network ;
928+ bool exclude_env =
929+ env != nullptr
930+ ? env->report_exclude_env ()
931+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
920932
921933 report::WriteNodeReport (isolate,
922934 env,
@@ -926,7 +938,8 @@ std::string TriggerNodeReport(Isolate* isolate,
926938 *outstream,
927939 error,
928940 compact,
929- exclude_network);
941+ exclude_network,
942+ exclude_env);
930943
931944 // Do not close stdout/stderr, only close files we opened.
932945 if (outfile.is_open ()) {
@@ -980,8 +993,20 @@ void GetNodeReport(Isolate* isolate,
980993 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
981994 : per_process::cli_options->per_isolate
982995 ->per_env ->report_exclude_network ;
983- report::WriteNodeReport (
984- isolate, env, message, trigger, " " , out, error, false , exclude_network);
996+ bool exclude_env =
997+ env != nullptr
998+ ? env->report_exclude_env ()
999+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
1000+ report::WriteNodeReport (isolate,
1001+ env,
1002+ message,
1003+ trigger,
1004+ " " ,
1005+ out,
1006+ error,
1007+ false ,
1008+ exclude_network,
1009+ exclude_env);
9851010}
9861011
9871012// External function to trigger a report, writing to a supplied stream.
@@ -997,8 +1022,20 @@ void GetNodeReport(Environment* env,
9971022 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
9981023 : per_process::cli_options->per_isolate
9991024 ->per_env ->report_exclude_network ;
1000- report::WriteNodeReport (
1001- isolate, env, message, trigger, " " , out, error, false , exclude_network);
1025+ bool exclude_env =
1026+ env != nullptr
1027+ ? env->report_exclude_env ()
1028+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
1029+ report::WriteNodeReport (isolate,
1030+ env,
1031+ message,
1032+ trigger,
1033+ " " ,
1034+ out,
1035+ error,
1036+ false ,
1037+ exclude_network,
1038+ exclude_env);
10021039}
10031040
10041041} // namespace node
0 commit comments