@@ -27,7 +27,7 @@ pub struct EbpfSyscallEvent {
2727
2828/// Event data union
2929#[ repr( C ) ]
30- #[ derive( Debug , Clone , Copy ) ]
30+ #[ derive( Clone , Copy ) ]
3131pub union EbpfEventData {
3232 /// execve data
3333 pub execve : ExecveData ,
@@ -41,6 +41,14 @@ pub union EbpfEventData {
4141 pub raw : [ u8 ; 128 ] ,
4242}
4343
44+ impl std:: fmt:: Debug for EbpfEventData {
45+ fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
46+ // SAFETY: raw is always a valid field in any union variant
47+ let raw = unsafe { self . raw } ;
48+ write ! ( f, "EbpfEventData {{ raw: {:?} }}" , & raw[ ..] )
49+ }
50+ }
51+
4452impl Default for EbpfEventData {
4553 fn default ( ) -> Self {
4654 Self {
@@ -51,7 +59,7 @@ impl Default for EbpfEventData {
5159
5260/// execve-specific data
5361#[ repr( C ) ]
54- #[ derive( Debug , Clone , Copy , Default ) ]
62+ #[ derive( Debug , Clone , Copy ) ]
5563pub struct ExecveData {
5664 /// Filename length
5765 pub filename_len : u32 ,
@@ -61,6 +69,12 @@ pub struct ExecveData {
6169 pub argc : u32 ,
6270}
6371
72+ impl Default for ExecveData {
73+ fn default ( ) -> Self {
74+ Self { filename_len : 0 , filename : [ 0u8 ; 128 ] , argc : 0 }
75+ }
76+ }
77+
6478/// connect-specific data
6579#[ repr( C ) ]
6680#[ derive( Debug , Clone , Copy , Default ) ]
@@ -75,7 +89,7 @@ pub struct ConnectData {
7589
7690/// openat-specific data
7791#[ repr( C ) ]
78- #[ derive( Debug , Clone , Copy , Default ) ]
92+ #[ derive( Debug , Clone , Copy ) ]
7993pub struct OpenatData {
8094 /// File path length
8195 pub path_len : u32 ,
@@ -85,6 +99,12 @@ pub struct OpenatData {
8599 pub flags : u32 ,
86100}
87101
102+ impl Default for OpenatData {
103+ fn default ( ) -> Self {
104+ Self { path_len : 0 , path : [ 0u8 ; 256 ] , flags : 0 }
105+ }
106+ }
107+
88108/// ptrace-specific data
89109#[ repr( C ) ]
90110#[ derive( Debug , Clone , Copy , Default ) ]
0 commit comments