summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-08-20 11:51:43 -0400
committerMark Rowe <mark@vector35.com>2025-08-27 14:04:10 -0700
commit0ef2fc2645b3b3e212d21c406fd79602a7e29990 (patch)
tree91121a9385e3896324f652d8d4ce1520a4053b80 /python
parenta086e7731c4761175f9280e952a9f500d6cdf997 (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')
-rw-r--r--python/binaryview.py9
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