diff options
| author | Mark Rowe <mark@vector35.com> | 2025-08-20 11:51:43 -0400 |
|---|---|---|
| committer | Mark Rowe <mark@vector35.com> | 2025-08-27 14:04:10 -0700 |
| commit | 0ef2fc2645b3b3e212d21c406fd79602a7e29990 (patch) | |
| tree | 91121a9385e3896324f652d8d4ce1520a4053b80 /python/binaryview.py | |
| parent | a086e7731c4761175f9280e952a9f500d6cdf997 (diff) | |
Revise the documentation on how multiple symbols at the same address are handled
To avoid non-determinism and provide consistent behavior in all cases,
now only confidence, symbol type, and name are considered when
disambiguating multiple symbols at the same address.
The previously documented behavior was not what was implemented. While
recency was considered in some cases for disambiguating symbols at the
same address, respecting it consistetly results in non-deterministic
behavior when symbols are being added concurrently by multiple sources.
Diffstat (limited to 'python/binaryview.py')
| -rw-r--r-- | python/binaryview.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/python/binaryview.py b/python/binaryview.py index e0c6cf10..c255a80e 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -6410,7 +6410,8 @@ class BinaryView: ``define_auto_symbol`` adds a symbol to the internal list of automatically discovered Symbol objects in a given namespace. - .. warning:: If multiple symbols for the same address are defined, only the most recent symbol will ever be used. + .. warning:: If multiple symbols for the same address are defined, the symbol with the highest confidence and + lowest SymbolType value will be used. Ties are broken by symbol name. :param sym: the symbol to define :rtype: None @@ -6423,7 +6424,8 @@ class BinaryView: """ ``define_auto_symbol_and_var_or_function`` Defines an "Auto" symbol, and a Variable/Function alongside it. - .. warning:: If multiple symbols for the same address are defined, only the most recent symbol will ever be used. + .. warning:: If multiple symbols for the same address are defined, the symbol with the highest confidence and + lowest SymbolType value will be used. Ties are broken by symbol name. :param sym: Symbol to define :param type: Type for the function/variable being defined (can be None) @@ -6465,7 +6467,8 @@ class BinaryView: """ ``define_user_symbol`` adds a symbol to the internal list of user added Symbol objects. - .. warning:: If multiple symbols for the same address are defined, only the most recent symbol will ever be used. + .. warning:: If multiple symbols for the same address are defined, the symbol with the highest confidence and + lowest SymbolType value will be used. Ties are broken by symbol name. :param Symbol sym: the symbol to define :rtype: None |
