Version and Platform (required):
- Binary Ninja Version: dev
- Edition: Ultimate
- OS: linux
- OS Version: 24.04
- CPU Architecture: x64
Bug Description:
The two-step "load without analyzing, then analyze separately" pattern hangs forever on at least some ELFs. BNLoadFilename(path, updateAnalysisAndWait=false, …) returns successfully, but a subsequent call to BNUpdateAnalysisAndWait never returns, and BNGetAnalysisProgress reports Initial indefinitely. The single-call form BNLoadFilename(path, updateAnalysisAndWait=true, …) analyzes the same file to completion in seconds.
Steps To Reproduce:
fn main() {
let session = binaryninja::headless::Session::new().unwrap();
// Single-call form: completes in seconds, BV ends up fully analyzed.
let bv = session
.load_with_options("/path/to/bin", true, Some("{}"))
.expect("load failed");
// bv.analysis_progress() == Idle here.
// Two-step form: hangs indefinitely on the same file, never leaves Initial.
let bv = session
.load_with_options("/path/to/ioncube_loader_lin_8.3.so", false, Some("{}"))
.expect("load failed");
assert!(matches!(
bv.analysis_progress(),
binaryninja::binary_view::AnalysisProgress::Initial
));
bv.update_analysis_and_wait(); // never returns
}
*Expected Behavior:
bv.update_analysis_and_wait should finish
Version and Platform (required):
Bug Description:
The two-step "load without analyzing, then analyze separately" pattern hangs forever on at least some ELFs. BNLoadFilename(path, updateAnalysisAndWait=false, …) returns successfully, but a subsequent call to BNUpdateAnalysisAndWait never returns, and BNGetAnalysisProgress reports Initial indefinitely. The single-call form BNLoadFilename(path, updateAnalysisAndWait=true, …) analyzes the same file to completion in seconds.
Steps To Reproduce:
*Expected Behavior:
bv.update_analysis_and_waitshould finish