angr-management icon indicating copy to clipboard operation
angr-management copied to clipboard

`TypeError: '_Feature' object is not iterable'` on 'Find in execution' (qinst_annotation.py typo?)

Open toratako opened this issue 4 months ago • 0 comments

Description

When I click Find in execution on Disassembly, I got TypeError.

Log output:

❯ angr-management
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
WARNING  | 2025-12-04 02:09:43,596 | cle.backends.backend | Unused kwargs for loading binary /home/user/Downloads/leaked-flag-checker/challenge: ignore_missing_arch
WARNING  | 2025-12-04 02:09:46,059 | angr.analyses.calling_convention.fact_collector.SimEngineFactCollectorVEX | Unsupported Binop Iop_CmpEQ64.
WARNING  | 2025-12-04 02:09:46,061 | angr.analyses.calling_convention.fact_collector.SimEngineFactCollectorVEX | Unsupported Binop Iop_CmpLT64U.
WARNING  | 2025-12-04 02:09:46,061 | angr.analyses.calling_convention.fact_collector.SimEngineFactCollectorVEX | Unsupported Binop Iop_Xor32.
WARNING  | 2025-12-04 02:09:46,062 | angr.analyses.calling_convention.fact_collector.SimEngineFactCollectorVEX | Unsupported Binop Iop_CmpEQ8.
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'itertools.count' object
when serializing dict item 'register'
when serializing dict item '_variable_counters'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal state
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal object
when serializing tuple item 5
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'itertools.count' object
when serializing dict item 'register'
when serializing dict item '_variable_counters'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal state
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal object
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
when serializing tuple item 5
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'itertools.count' object
when serializing dict item 'register'
when serializing dict item '_variable_counters'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal state
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal object
when serializing tuple item 5
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'itertools.count' object
TypeError: cannot pickle 'itertools.count' object
when serializing dict item 'register'
when serializing dict item '_variable_counters'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal state
when serializing dict item 'register'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal object
when serializing tuple item 5
when serializing dict item '_variable_counters'
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal state
when serializing angr.knowledge_plugins.variables.variable_manager.VariableManagerInternal object
when serializing tuple item 5
Traceback (most recent call last):
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qsimulation_managers.py", line 329, in _on_explore_addr_changed
    view.refresh()
    ~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/views/disassembly_view.py", line 161, in refresh
    self._current_view.refresh()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qdisasm_graph.py", line 212, in refresh
    b.refresh()
    ~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qblock.py", line 144, in refresh
    self.layout_widgets()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qblock.py", line 333, in layout_widgets
    self.qblock_annotations = self.disasm_view.fetch_qblock_annotations(self)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/views/disassembly_view.py", line 841, in fetch_qblock_annotations
    return QBlockAnnotations(addr_to_annotations, parent=qblock, disasm_view=self)
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qinst_annotation.py", line 264, in __init__
    for annotation in annotations:
                      ^^^^^^^^^^^
TypeError: '_Feature' object is not iterable
Traceback (most recent call last):
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/menus/disasm_insn_context_menu.py", line 73, in _find_in_execution
    self._disasm_view.refresh()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/views/disassembly_view.py", line 161, in refresh
    self._current_view.refresh()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qdisasm_graph.py", line 212, in refresh
    b.refresh()
    ~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qblock.py", line 144, in refresh
    self.layout_widgets()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qblock.py", line 333, in layout_widgets
    self.qblock_annotations = self.disasm_view.fetch_qblock_annotations(self)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/views/disassembly_view.py", line 841, in fetch_qblock_annotations
    return QBlockAnnotations(addr_to_annotations, parent=qblock, disasm_view=self)
  File "/home/user/.local/share/mise/installs/python/3.14.0/lib/python3.14/site-packages/angrmanagement/ui/widgets/qinst_annotation.py", line 264, in __init__
    for annotation in annotations:
                      ^^^^^^^^^^^
TypeError: '_Feature' object is not iterable

I think this should be annotations_ not annotations.

https://github.com/angr/angr-management/blob/master/angrmanagement/ui/widgets/qinst_annotation.py#L264

Thank you!

Steps to reproduce the bug

  1. Click Find in execution on Disassembly window.

Environment

❯ uv tool list
angr-management v9.2.186
- am
- angr-management

Additional context

No response

toratako avatar Dec 03 '25 17:12 toratako