Decompilation is cleared out when the argument type of a function is changed. Disassembly also becomes inaccessible.
ERROR | 2025-12-16 16:10:05,591 | angr.analyses.analysis | Caught and logged AssertionError with resilience:
ERROR | 2025-12-16 16:10:05,764 | angr.analyses.analysis | Caught and logged AssertionError with resilience:
Error calling Python override of QPlainTextEdit::event(): Traceback (most recent call last):
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qccode_edit.py", line 199, in event
return super().event(event)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qccode_edit.py", line 267, in keyPressEvent
mnu = self.get_context_menu()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qccode_edit.py", line 138, in get_context_menu
under_cursor = self.node_under_cursor()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qccode_edit.py", line 124, in node_under_cursor
current_node = doc.get_node_at_position(pos)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/documents/qcodedocument.py", line 54, in get_node_at_position
if self._codegen is not None and self._codegen.map_pos_to_node is not None:
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/data/object_container.py", line 83, in __getattr__
return getattr(self._am_obj, item)
AttributeError: Error calling Python override of QPlainTextEdit::keyPressEvent(): 'NoneType' object has no attribute 'map_pos_to_node'
Error calling Python override of QFrame::keyPressEvent(): Traceback (most recent call last):
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/views/disassembly_view.py", line 304, in keyPressEvent
self.toggle_disasm_view()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/views/disassembly_view.py", line 623, in toggle_disasm_view
self.display_linear_viewer(prefer)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/views/disassembly_view.py", line 653, in display_linear_viewer
self._linear_viewer.show_instruction(next(iter(self.infodock.selected_insns)))
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 279, in show_instruction
self.navigate_to_addr(insn_addr)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 291, in navigate_to_addr
self.navigate_to(floor_region_offset + offset_into_region)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 295, in navigate_to
self.prepare_objects(offset, start_line=0)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angr/utils/timing.py", line 72, in timed_func
return func(*args, **kwargs)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 409, in prepare_objects
is_cached, qobject = self._obj_to_paintable(obj_addr, obj)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 523, in _obj_to_paintable
qobject = QLinearBlock(
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 436, in __init__
super().__init__(*args, **kwargs)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 79, in __init__
self._init_widgets()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 308, in _init_widgets
self._init_disassembly_block_widgets()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 287, in _init_disassembly_block_widgets
obj = QBlockCode(
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock_code.py", line 83, in __init__
self.update_document()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock_code.py", line 96, in update_document
self.obj.render_to_doc(cur)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/block_code_objects/base_objects.py", line 133, in render_to_doc
obj.render_to_doc(cursor)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/block_code_objects/base_objects.py", line 133, in render_to_doc
obj.render_to_doc(cursor)
AttributeError: 'NoneType' object has no attribute 'render_to_doc'
Error calling Python override of QGraphicsView::viewportEvent(): Traceback (most recent call last):
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qgraph.py", line 53, in viewportEvent
return super().viewportEvent(event)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 52, in wheelEvent
self.area.wheelEvent(event)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 173, in wheelEvent
self.prepare_objects(self.offset, start_line=self._start_line_in_object - lines)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angr/utils/timing.py", line 72, in timed_func
return func(*args, **kwargs)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 409, in prepare_objects
is_cached, qobject = self._obj_to_paintable(obj_addr, obj)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qlinear_viewer.py", line 523, in _obj_to_paintable
qobject = QLinearBlock(
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 436, in __init__
super().__init__(*args, **kwargs)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 79, in __init__
self._init_widgets()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 308, in _init_widgets
self._init_disassembly_block_widgets()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock.py", line 287, in _init_disassembly_block_widgets
obj = QBlockCode(
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock_code.py", line 83, in __init__
self.update_document()
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/qblock_code.py", line 96, in update_document
self.obj.render_to_doc(cur)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/block_code_objects/base_objects.py", line 133, in render_to_doc
obj.render_to_doc(cursor)
File "/Users/tedan/.pyenv/versions/3.10.18/lib/python3.10/site-packages/angrmanagement/ui/widgets/block_code_objects/base_objects.py", line 133, in render_to_doc
obj.render_to_doc(cursor)
AttributeError: Error calling Python override of QGraphicsView::wheelEvent(): 'NoneType' object has no attribute 'render_to_doc'
Description
Decompilation is cleared out when the argument type of a function is changed. Disassembly also becomes inaccessible.
Error:
file.zip
Steps to reproduce the bug
Load the binary and change the argument type of function
_print_boxfromunsigned long longtochar *.Environment
No response
Additional context
No response