1use idalib::idb::IDB;
2
3fn main() -> anyhow::Result<()> {
4 println!("Trying to open IDA database...");
5
6 let idb = IDB::open("./tests/ls")?;
8
9 println!("Testing len(), get_by_index(), and get_address_by_index() (valid indexes)");
10 for i in 0..idb.names().len() {
12 assert!(idb.names().get_by_index(i).is_some());
14 assert!(idb.names().get_address_by_index(i).is_some());
16 }
17
18 println!("Testing len(), get_by_index(), and get_address_by_index() (invalid index)");
19 let len = idb.names().len();
21 assert!(idb.names().get_by_index(len).is_none());
23 assert!(idb.names().get_address_by_index(len).is_none());
25
26 println!("\nTesting iterator:");
27 for name in idb.names().iter() {
28 let flags = idb.flags_at(name.address());
29 println!(
30 "\t{:#x}\t{:?}\tcode: {}\tdata: {}",
31 name.address(),
32 name.name(),
33 flags.is_code(),
34 flags.is_data(),
35 );
36 }
37
38 Ok(())
39}