1
1
use super :: operation:: * ;
2
2
use super :: { HighLevelILFunction , HighLevelInstructionIndex } ;
3
+ use std:: fmt:: { Debug , Formatter } ;
3
4
4
5
use crate :: architecture:: CoreIntrinsic ;
5
6
use crate :: rc:: Ref ;
6
7
use crate :: variable:: { ConstantData , SSAVariable , Variable } ;
7
8
8
- #[ derive( Clone ) ]
9
+ #[ derive( Clone , Debug ) ]
9
10
pub enum HighLevelILLiftedOperand {
10
11
ConstantData ( ConstantData ) ,
11
12
Expr ( HighLevelILLiftedInstruction ) ,
@@ -25,7 +26,7 @@ pub enum HighLevelILLiftedOperand {
25
26
// TODO: We dont even need to say instruction in the type!
26
27
// TODO: IF you want to have an instruction type, there needs to be a separate expression type
27
28
// TODO: See the lowlevelil module.
28
- #[ derive( Clone , Debug , PartialEq ) ]
29
+ #[ derive( Clone , PartialEq ) ]
29
30
pub struct HighLevelILLiftedInstruction {
30
31
pub function : Ref < HighLevelILFunction > ,
31
32
pub address : u64 ,
@@ -460,3 +461,14 @@ impl HighLevelILLiftedInstruction {
460
461
}
461
462
}
462
463
}
464
+
465
+ impl Debug for HighLevelILLiftedInstruction {
466
+ fn fmt ( & self , f : & mut Formatter < ' _ > ) -> std:: fmt:: Result {
467
+ f. debug_struct ( "HighLevelILLiftedInstruction" )
468
+ . field ( "address" , & self . address )
469
+ . field ( "expr_index" , & self . expr_index )
470
+ . field ( "size" , & self . size )
471
+ . field ( "kind" , & self . kind )
472
+ . finish ( )
473
+ }
474
+ }
0 commit comments