@@ -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);
@@ -249,6 +252,9 @@ static void WriteNodeReport(Isolate* isolate,
249252 writer.json_arrayend ();
250253
251254 // Report operating system information
255+ if (exclude_env == false ) {
256+ PrintEnvironmentVariables (&writer);
257+ }
252258 PrintSystemInformation (&writer);
253259
254260 writer.json_objectend ();
@@ -694,8 +700,7 @@ static void PrintResourceUsage(JSONWriter* writer) {
694700#endif // RUSAGE_THREAD
695701}
696702
697- // Report operating system information.
698- static void PrintSystemInformation (JSONWriter* writer) {
703+ static void PrintEnvironmentVariables (JSONWriter* writer) {
699704 uv_env_item_t * envitems;
700705 int envcount;
701706 int r;
@@ -715,7 +720,10 @@ static void PrintSystemInformation(JSONWriter* writer) {
715720 }
716721
717722 writer->json_objectend ();
723+ }
718724
725+ // Report operating system information.
726+ static void PrintSystemInformation (JSONWriter* writer) {
719727#ifndef _WIN32
720728 static struct {
721729 const char * description;
@@ -915,6 +923,10 @@ std::string TriggerNodeReport(Isolate* isolate,
915923 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
916924 : per_process::cli_options->per_isolate
917925 ->per_env ->report_exclude_network ;
926+ bool exclude_env =
927+ env != nullptr
928+ ? env->report_exclude_env ()
929+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
918930
919931 report::WriteNodeReport (isolate,
920932 env,
@@ -924,7 +936,8 @@ std::string TriggerNodeReport(Isolate* isolate,
924936 *outstream,
925937 error,
926938 compact,
927- exclude_network);
939+ exclude_network,
940+ exclude_env);
928941
929942 // Do not close stdout/stderr, only close files we opened.
930943 if (outfile.is_open ()) {
@@ -978,8 +991,20 @@ void GetNodeReport(Isolate* isolate,
978991 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
979992 : per_process::cli_options->per_isolate
980993 ->per_env ->report_exclude_network ;
981- report::WriteNodeReport (
982- isolate, env, message, trigger, " " , out, error, false , exclude_network);
994+ bool exclude_env =
995+ env != nullptr
996+ ? env->report_exclude_env ()
997+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
998+ report::WriteNodeReport (isolate,
999+ env,
1000+ message,
1001+ trigger,
1002+ " " ,
1003+ out,
1004+ error,
1005+ false ,
1006+ exclude_network,
1007+ exclude_env);
9831008}
9841009
9851010// External function to trigger a report, writing to a supplied stream.
@@ -995,8 +1020,20 @@ void GetNodeReport(Environment* env,
9951020 bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
9961021 : per_process::cli_options->per_isolate
9971022 ->per_env ->report_exclude_network ;
998- report::WriteNodeReport (
999- isolate, env, message, trigger, " " , out, error, false , exclude_network);
1023+ bool exclude_env =
1024+ env != nullptr
1025+ ? env->report_exclude_env ()
1026+ : per_process::cli_options->per_isolate ->per_env ->report_exclude_env ;
1027+ report::WriteNodeReport (isolate,
1028+ env,
1029+ message,
1030+ trigger,
1031+ " " ,
1032+ out,
1033+ error,
1034+ false ,
1035+ exclude_network,
1036+ exclude_env);
10001037}
10011038
10021039} // namespace node
0 commit comments