@@ -108,49 +108,43 @@ public boolean added(Program program, AddressSetView set, TaskMonitor monitor, M
108108 Address func_list_base =base .add (8 +pointer_size );
109109 log_tmp ("start loop" );
110110 for (int i =0 ; i <func_num ; i ++) {
111- long func_addr_offset =0 ;
111+ long func_addr_value =0 ;
112112 long func_info_offset =0 ;
113113 int func_name_offset =0 ;
114114 int args =0 ;
115115 try {
116116 if (pointer_size ==8 ) {
117- func_addr_offset =memory .getLong (func_list_base .add (i *pointer_size *2 ));
117+ func_addr_value =memory .getLong (func_list_base .add (i *pointer_size *2 ));
118118 func_info_offset =memory .getLong (func_list_base .add (i *pointer_size *2 +pointer_size ));
119119 }else {
120- func_addr_offset =memory .getInt (func_list_base .add (i *pointer_size *2 ));
120+ func_addr_value =memory .getInt (func_list_base .add (i *pointer_size *2 ));
121121 func_info_offset =memory .getInt (func_list_base .add (i *pointer_size *2 +pointer_size ));
122122 }
123- log_tmp (String .format ("get first offset %x %x" , func_addr_offset , func_info_offset ));
124- long address =memory .getInt (base .add (func_info_offset ));
123+ long func_entry_value =memory .getInt (base .add (func_info_offset ));
125124
126125 func_name_offset =memory .getInt (base .add (func_info_offset +pointer_size ));
127- log_tmp (String .format ("get second offset %x" , func_name_offset ));
128126
129127 Listing listing =program .getListing ();
130- log_tmp ( String . format ( "func_name_data %x" , base . add ( func_name_offset ). getOffset ()));
128+
131129 Data func_name_data =listing .getDefinedDataAt (base .add (func_name_offset ));
132130 if (func_name_data ==null ) {
133131 func_name_data =listing .createData (base .add (func_name_offset ), new StringDataType ());
134132 }else if (!func_name_data .getDataType ().isEquivalent ((new StringDataType ()))) {
135133 log_tmp ("failed !func_name_data.getDataType().isEquivalent((new StringDataType()))" );
136- return false ;
134+ continue ;
137135 }
138136 log_tmp ("get name" );
139137
140138 args =memory .getInt (base .add (func_info_offset +pointer_size +4 ));
141139 log_tmp (String .format ("get args %d" , args ));
142140
143- Address func_addr =program .getAddressFactory ().getDefaultAddressSpace ().getAddress (func_addr_offset );
144- log_tmp (String .format ("func addr %x" , func_addr .getOffset ()));
145- log_tmp (String .format ("entrypoint %x" , address ));
146- if (func_addr .getOffset ()!=address )
141+ log_tmp (String .format ("entrypoint %x" , func_entry_value ));
142+ if (func_addr_value !=func_entry_value )
147143 {
148- log_tmp ("wrongg" );
149- }
150- if (func_addr_offset !=address )
151- {
152- log_tmp ("wrongh" );
144+ log_tmp ("wrong func addr" );
145+ continue ;
153146 }
147+ Address func_addr =program .getAddressFactory ().getDefaultAddressSpace ().getAddress (func_addr_value );
154148 Function func =program .getFunctionManager ().getFunctionAt (func_addr );
155149 log_tmp ("get func" );
156150 String func_name =(String )func_name_data .getValue ();
0 commit comments