summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-10[SharedCache] Only setup undo actions and bulk modify in ↵WeiN76LQh
`SharedCache::FindSymbolAtAddrAndApplyToAddr` if a symbol is found
2025-02-10[SharedCache] Improve the types for `m_exportInfos`WeiN76LQh
This commit changes 2 things; 1. `m_exportInfos` is now a map where its values are also a map rather than a vector of pairs. The reason for this is that `SharedCache::FindSymbolAtAddrAndApplyToAddr` is a hot path which does by far the most accesses to `m_exportInfos`. In that function it must find the correct symbol for a given address so a map lookup will be much quicker than iterating a vector. The other use cases of `m_exportInfos` would prefer a vector but they are executed very infrequently. 2. The symbols are stored in `m_exportInfos` as references to the `Symbol` type. This makes more sense because otherwise there is a lot of time spent converting to and from a `Symbol` type and a pair of `BNSymbolType` + a `std::string`.
2025-02-10[SharedCache] Add parameter to `SharedCache::InitializeHeader` to check if ↵WeiN76LQh
`m_exportInfos` was modified This probably makes more sense than the current solution of using execution of the callback parameter to determine if `m_exportInfos` was modified.
2025-02-10[SharedCache] Use `m_exportInfos` as an export list cacheWeiN76LQh
`SharedCache::ParseExportTrie` is getting called a lot during DSC library loading and analysis. In large part due to the hot path `SharedCache::FindSymbolAtAddrAndApplyToAddr`. Its unnecessary for it to be being called more than once per DSC header as the export list symbol information is stored in `SharedCache::m_exportInfos`. This commit adds the function `SharedCache::GetExportListForHeader`, which will either return the header's list of symbol information cached in `SharedCache::m_exportInfos` or call `SharedCache::ParseExportTrie` and cache the results in `SharedCache::m_exportInfos`. This should also improve the execution time of `SharedCache::LoadAllSymbolsAndWait`. Further improvement here would be to add locking to `SharedCache::GetExportListForHeader` so that races don't result in redundant parsing of the export trie for the same header if multiple threads call `SharedCache::GetExportListForHeader` at the same time for the same header. This only really matters during initial loading because from what I can tell that parses all the export trie's anyway.
2025-02-07Fix misc Rust example unused varMason Reed
2025-02-07Implement Rust BaseAddressDetectionRubens Brandao
2025-02-07Implement Rust DisassemblyTextRendererRubens Brandao
2025-02-07Implement Rust WebsocketProviderRubens Brandao
2025-02-07Fix incorrect casts in Rust RepositoryPluginMason Reed
Was causing linux arm builds to fail
2025-02-07Add server error to EnterpriseCheckoutError::RefreshExpiredLicenseFailedMason Reed
2025-02-07Move session registration for Rust headless initialization to be immediateMason Reed
This fixes a possible race if another thread can successfully shutdown before the current thread can register its session
2025-02-07Fix Rust LinearDisassemblyLine not freeing properlyMason Reed
2025-02-07Update types Rust test to check for type deletionMason Reed
2025-02-07Fix secrets_provider Rust tests failing for enterprise buildsMason Reed
Try and just initialize once
2025-02-06Update Rust tests to respect image baseMason Reed
2025-02-06Fix BinaryReader and BinaryWriter not respecting image base in Rust APIMason Reed
2025-02-06Fix rust decompile exampleMason Reed
2025-02-06Misc rust API formattingMason Reed
2025-02-06Fix double ref increment for misc Repository C++ APIsMason Reed
Noticed these when reviewing the Rust Repository API
2025-02-06Correctly quote the string in the Debug impl for BnStringMason Reed
2025-02-06Implement Rust RepositoryRubens Brandao
2025-02-06Implement Rust SecretsProviderRubens Brandao
2025-02-06Add ability to query IL functions in FlowGraph for Rust APIMason Reed
2025-02-06Add simple type to view test for Rust APIMason Reed
2025-02-06[mips] Fix decoding of MIPS ds*32 instructions, add lifting for MIPS drotr* ↵Galen Williamson
instructions; clean up some warnings in powerpc/il.cpp
2025-02-06Add After variants for looking up variables at instructionsGlenn Smith
Fixes #6397
2025-02-05fix mis-named type library action in docsJordan Wiens
2025-02-05correct user/auto api differences explanationJordan Wiens
2025-02-05Stop importing Type Archive types in parse_type_stringGlenn Smith
CC Vector35/binaryninja-api#6235
2025-02-05Fixes: Unsupported ELF relocations: R_ARM_THM_MOVW_ABS_NC, ↵Galen Williamson
R_ARM_THM_MOVT_ABS #6215
2025-02-05Search item descriptions in project browserJosh Ferrell
2025-02-04Fixes `Architecture._get_stack_pointer_register` to return 0 instead of None ↵Galen Williamson
when unimplemented to prevent ctypes error
2025-02-04Update to Qt 6.8.2Rusty Wagner
2025-02-04Fix misc rust formattingMason Reed
2025-02-04Fix crash with unnamed function self reference in DWARF importMason Reed
2025-02-04Avoid crashing when initial type parse fails in DSCViewkat
2025-02-04Firmware Ninja relationships APIBrandon Miller
2025-02-04Do not call callbacks on IL instruction when the instruction index is ↵Xusheng
invalid. Fix https://github.com/Vector35/binaryninja-api/issues/6320
2025-02-03Fix leak in Render Layer apiGlenn Smith
2025-02-03Greatly improve performance of memory map viewJosh Ferrell
2025-02-03update enumeration example api docsJordan Wiens
2025-02-03Add option to support auto parsing text formats.Brian Potchik
2025-02-03Fix documentation around `LLIL_MUL`Dusk Banks
`mul` is aligned with at least what x86 returns for tokens. Signed-off-by: Dusk Banks <me@bb010g.com>
2025-02-02Fix Rust apply_to_linear_object logic applying non basic block backed disasm ↵Mason Reed
lines
2025-02-02Fix upper 16 registers not being listed in ARMv7 register list operandMason Reed
Fixes #6383
2025-02-02Fix QualifiedName being leaked in function UserTypeReference related functionsMason Reed
2025-02-02Fix crash in dwarf import when no constant value attribute found for enumerationMason Reed
Fixes #6382
2025-01-31Update IDB import to idb-rs 0.1.9rbran
2025-01-31Fix double free in CoreCallingConvention::callee_saved_registersMason Reed
Also added an assertion in the types unit test to catch it Fixes #6379
2025-01-31Remove the push trigger on Rust testing CIMason Reed
This is still being triggered by non-rust commits, need to look into this further later. Fixes #6378