Open ElykDeer opened 5 years ago
Still repros on 2.4.3060-dev.
Throws assertion:
Traceback (most recent call last):
File "<console>", line 4, in <module>
File "/home/kyle/binaryninja-dev/plugins/../python/binaryninja/lowlevelil.py", line 540, in il_basic_block
assert core_block is not None, "BNGetLowLevelILBasicBlockForInstruction returned None"
AssertionError: BNGetLowLevelILBasicBlockForInstruction returned None
The underlying issue here is that we don't have a BNGetLiftedlILBasicBlockForInstruction
and we're just counting lifted and llil being roughly equal when they aren't.
On any sufficiently large binary,
/bin/ls
for example, the following code will not complete without generating an exception.When replacing
func.lifted_il
with eitherfunc.llil
orfunc.mlil
, it seems to work fine.The exception generated is:
Later, when closing ipython or waiting an arbitrary amount of time, the following exception is generated:
Nearly identical blocks/instructions are affected, does seem to break consistently on the same block in the same binary, but I I think that's more happenstance than anything.
Present in both Python2 and Python3, sorta seems like a dangling pointer issue to me.