2424
2525# Binary Ninja components
2626from . import _binaryninjacore as core
27- from .log import log_error
27+ from .log import log_error_for_exception
2828from . import variable
2929from . import function
3030from . import architecture
@@ -232,7 +232,7 @@ def _get_caller_saved_regs(self, ctxt, count):
232232 self ._pending_reg_lists [result .value ] = (result , reg_buf )
233233 return result .value
234234 except :
235- log_error ( traceback . format_exc () )
235+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_caller_saved_regs" )
236236 count [0 ] = 0
237237 return None
238238
@@ -247,7 +247,7 @@ def _get_callee_saved_regs(self, ctxt, count):
247247 self ._pending_reg_lists [result .value ] = (result , reg_buf )
248248 return result .value
249249 except :
250- log_error ( traceback . format_exc () )
250+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_callee_saved_regs" )
251251 count [0 ] = 0
252252 return None
253253
@@ -262,7 +262,7 @@ def _get_int_arg_regs(self, ctxt, count):
262262 self ._pending_reg_lists [result .value ] = (result , reg_buf )
263263 return result .value
264264 except :
265- log_error ( traceback . format_exc () )
265+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_int_arg_regs" )
266266 count [0 ] = 0
267267 return None
268268
@@ -277,7 +277,7 @@ def _get_float_arg_regs(self, ctxt, count):
277277 self ._pending_reg_lists [result .value ] = (result , reg_buf )
278278 return result .value
279279 except :
280- log_error ( traceback . format_exc () )
280+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_float_arg_regs" )
281281 count [0 ] = 0
282282 return None
283283
@@ -288,41 +288,41 @@ def _free_register_list(self, ctxt, regs, count):
288288 raise ValueError ("freeing register list that wasn't allocated" )
289289 del self ._pending_reg_lists [buf .value ]
290290 except :
291- log_error ( traceback . format_exc () )
291+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._free_register_list" )
292292
293293 def _arg_regs_share_index (self , ctxt ):
294294 try :
295295 return self .__class__ .arg_regs_share_index
296296 except :
297- log_error ( traceback . format_exc () )
297+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._arg_regs_share_index" )
298298 return False
299299
300300 def _arg_regs_used_for_varargs (self , ctxt ):
301301 try :
302302 return self .__class__ .arg_regs_for_varargs
303303 except :
304- log_error ( traceback . format_exc () )
304+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._arg_regs_for_varargs" )
305305 return False
306306
307307 def _stack_reserved_for_arg_regs (self , ctxt ):
308308 try :
309309 return self .__class__ .stack_reserved_for_arg_regs
310310 except :
311- log_error ( traceback . format_exc () )
311+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._stack_reserved_for_arg_regs" )
312312 return False
313313
314314 def _stack_adjusted_on_return (self , ctxt ):
315315 try :
316316 return self .__class__ .stack_adjusted_on_return
317317 except :
318- log_error ( traceback . format_exc () )
318+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._stack_adjusted_on_return" )
319319 return False
320320
321321 def _eligible_for_heuristics (self , ctxt ):
322322 try :
323323 return self .__class__ .eligible_for_heuristics
324324 except :
325- log_error ( traceback . format_exc () )
325+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._eligible_for_heuristics" )
326326 return False
327327
328328 def _get_int_return_reg (self , ctxt ):
@@ -333,7 +333,7 @@ def _get_int_return_reg(self, ctxt):
333333 try :
334334 return self .arch .regs [self .__class__ .int_return_reg ].index
335335 except :
336- log_error ( traceback . format_exc () )
336+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_int_return_reg" )
337337 return False
338338
339339 def _get_high_int_return_reg (self , ctxt ):
@@ -342,7 +342,7 @@ def _get_high_int_return_reg(self, ctxt):
342342 return 0xffffffff
343343 return self .arch .regs [self .__class__ .high_int_return_reg ].index
344344 except :
345- log_error ( traceback . format_exc () )
345+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_high_int_return_reg" )
346346 return False
347347
348348 def _get_float_return_reg (self , ctxt ):
@@ -351,7 +351,7 @@ def _get_float_return_reg(self, ctxt):
351351 return 0xffffffff
352352 return self .arch .regs [self .__class__ .float_return_reg ].index
353353 except :
354- log_error ( traceback . format_exc () )
354+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_float_return_reg" )
355355 return False
356356
357357 def _get_global_pointer_reg (self , ctxt ):
@@ -360,7 +360,7 @@ def _get_global_pointer_reg(self, ctxt):
360360 return 0xffffffff
361361 return self .arch .regs [self .__class__ .global_pointer_reg ].index
362362 except :
363- log_error ( traceback . format_exc () )
363+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_global_pointer_reg" )
364364 return False
365365
366366 def _get_implicitly_defined_regs (self , ctxt , count ):
@@ -374,7 +374,7 @@ def _get_implicitly_defined_regs(self, ctxt, count):
374374 self ._pending_reg_lists [result .value ] = (result , reg_buf )
375375 return result .value
376376 except :
377- log_error ( traceback . format_exc () )
377+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_implicitly_defined_regs" )
378378 count [0 ] = 0
379379 return None
380380
@@ -384,7 +384,7 @@ def _get_incoming_reg_value(self, ctxt, reg, func, result):
384384 reg_name = self .arch .get_reg_name (reg )
385385 api_obj = self .perform_get_incoming_reg_value (reg_name , func_obj )._to_core_struct ()
386386 except :
387- log_error ( traceback . format_exc () )
387+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_incoming_reg_value" )
388388 api_obj = variable .Undetermined ()._to_core_struct ()
389389 result [0 ].state = api_obj .state
390390 result [0 ].value = api_obj .value
@@ -395,7 +395,7 @@ def _get_incoming_flag_value(self, ctxt, reg, func, result):
395395 reg_name = self .arch .get_reg_name (reg )
396396 api_obj = self .perform_get_incoming_flag_value (reg_name , func_obj )._to_core_struct ()
397397 except :
398- log_error ( traceback . format_exc () )
398+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_incoming_flag_value" )
399399 api_obj = variable .Undetermined ()._to_core_struct ()
400400 result [0 ].state = api_obj .state
401401 result [0 ].value = api_obj .value
@@ -412,7 +412,7 @@ def _get_incoming_var_for_parameter_var(self, ctxt, in_var, func, result):
412412 result [0 ].index = out_var .index
413413 result [0 ].storage = out_var .storage
414414 except :
415- log_error ( traceback . format_exc () )
415+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_incoming_var_for_parameter_var" )
416416 result [0 ].type = in_var [0 ].type
417417 result [0 ].index = in_var [0 ].index
418418 result [0 ].storage = in_var [0 ].storage
@@ -429,7 +429,7 @@ def _get_parameter_var_for_incoming_var(self, ctxt, in_var, func, result):
429429 result [0 ].index = out_var .index
430430 result [0 ].storage = out_var .storage
431431 except :
432- log_error ( traceback . format_exc () )
432+ log_error_for_exception ( "Unhandled Python exception in CallingConvention._get_parameter_var_for_incoming_var" )
433433 result [0 ].type = in_var [0 ].type
434434 result [0 ].index = in_var [0 ].index
435435 result [0 ].storage = in_var [0 ].storage
0 commit comments