@@ -61,7 +61,8 @@ static void WriteNodeReport(Isolate* isolate,
61
61
std::ostream& out,
62
62
Local<Value> error,
63
63
bool compact,
64
- bool exclude_network = false );
64
+ bool exclude_network = false ,
65
+ bool exclude_env = false );
65
66
static void PrintVersionInformation (JSONWriter* writer,
66
67
bool exclude_network = false );
67
68
static void PrintJavaScriptErrorStack (JSONWriter* writer,
@@ -78,6 +79,7 @@ static void PrintJavaScriptErrorProperties(JSONWriter* writer,
78
79
static void PrintNativeStack (JSONWriter* writer);
79
80
static void PrintResourceUsage (JSONWriter* writer);
80
81
static void PrintGCStatistics (JSONWriter* writer, Isolate* isolate);
82
+ static void PrintEnvironmentVariables (JSONWriter* writer);
81
83
static void PrintSystemInformation (JSONWriter* writer);
82
84
static void PrintLoadedLibraries (JSONWriter* writer);
83
85
static void PrintComponentVersions (JSONWriter* writer);
@@ -95,7 +97,8 @@ static void WriteNodeReport(Isolate* isolate,
95
97
std::ostream& out,
96
98
Local<Value> error,
97
99
bool compact,
98
- bool exclude_network) {
100
+ bool exclude_network,
101
+ bool exclude_env) {
99
102
// Obtain the current time and the pid.
100
103
TIME_TYPE tm_struct;
101
104
DiagnosticFilename::LocalTime (&tm_struct);
@@ -249,6 +252,9 @@ static void WriteNodeReport(Isolate* isolate,
249
252
writer.json_arrayend ();
250
253
251
254
// Report operating system information
255
+ if (exclude_env == false ) {
256
+ PrintEnvironmentVariables (&writer);
257
+ }
252
258
PrintSystemInformation (&writer);
253
259
254
260
writer.json_objectend ();
@@ -694,8 +700,7 @@ static void PrintResourceUsage(JSONWriter* writer) {
694
700
#endif // RUSAGE_THREAD
695
701
}
696
702
697
- // Report operating system information.
698
- static void PrintSystemInformation (JSONWriter* writer) {
703
+ static void PrintEnvironmentVariables (JSONWriter* writer) {
699
704
uv_env_item_t * envitems;
700
705
int envcount;
701
706
int r;
@@ -715,7 +720,10 @@ static void PrintSystemInformation(JSONWriter* writer) {
715
720
}
716
721
717
722
writer->json_objectend ();
723
+ }
718
724
725
+ // Report operating system information.
726
+ static void PrintSystemInformation (JSONWriter* writer) {
719
727
#ifndef _WIN32
720
728
static struct {
721
729
const char * description;
@@ -915,6 +923,10 @@ std::string TriggerNodeReport(Isolate* isolate,
915
923
bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
916
924
: per_process::cli_options->per_isolate
917
925
->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 ;
918
930
919
931
report::WriteNodeReport (isolate,
920
932
env,
@@ -924,7 +936,8 @@ std::string TriggerNodeReport(Isolate* isolate,
924
936
*outstream,
925
937
error,
926
938
compact,
927
- exclude_network);
939
+ exclude_network,
940
+ exclude_env);
928
941
929
942
// Do not close stdout/stderr, only close files we opened.
930
943
if (outfile.is_open ()) {
@@ -978,8 +991,20 @@ void GetNodeReport(Isolate* isolate,
978
991
bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
979
992
: per_process::cli_options->per_isolate
980
993
->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);
983
1008
}
984
1009
985
1010
// External function to trigger a report, writing to a supplied stream.
@@ -995,8 +1020,20 @@ void GetNodeReport(Environment* env,
995
1020
bool exclude_network = env != nullptr ? env->options ()->report_exclude_network
996
1021
: per_process::cli_options->per_isolate
997
1022
->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);
1000
1037
}
1001
1038
1002
1039
} // namespace node
0 commit comments