DBG: small performance optimizations
This commit is contained in:
parent
e2181da7a2
commit
60034795e5
|
|
@ -73,7 +73,7 @@ extern "C" DLL_EXPORT bool _dbg_memmap(MEMMAP* memmap)
|
|||
|
||||
extern "C" DLL_EXPORT bool _dbg_memisvalidreadptr(duint addr)
|
||||
{
|
||||
return MemIsValidReadPtr(addr);
|
||||
return MemIsValidReadPtr(addr, true);
|
||||
}
|
||||
|
||||
extern "C" DLL_EXPORT bool _dbg_valfromstring(const char* string, duint* value)
|
||||
|
|
@ -137,7 +137,7 @@ static bool getLabel(duint addr, char* label)
|
|||
{
|
||||
BASIC_INSTRUCTION_INFO basicinfo;
|
||||
memset(&basicinfo, 0, sizeof(BASIC_INSTRUCTION_INFO));
|
||||
if(disasmfast(addr, &basicinfo) && basicinfo.branch && !basicinfo.call && basicinfo.memory.value) //thing is a JMP
|
||||
if(disasmfast(addr, &basicinfo, true) && basicinfo.branch && !basicinfo.call && basicinfo.memory.value) //thing is a JMP
|
||||
{
|
||||
duint val = 0;
|
||||
if(MemRead(basicinfo.memory.value, &val, sizeof(val), nullptr, true))
|
||||
|
|
@ -584,7 +584,7 @@ extern "C" DLL_EXPORT int _dbg_getbplist(BPXTYPE type, BPMAP* bpmap)
|
|||
extern "C" DLL_EXPORT duint _dbg_getbranchdestination(duint addr)
|
||||
{
|
||||
unsigned char data[MAX_DISASM_BUFFER];
|
||||
if(!MemIsValidReadPtr(addr) || !MemRead(addr, data, sizeof(data)))
|
||||
if(!MemIsValidReadPtr(addr, true) || !MemRead(addr, data, sizeof(data)))
|
||||
return 0;
|
||||
Capstone cp;
|
||||
if(!cp.Disassemble(addr, data))
|
||||
|
|
|
|||
|
|
@ -105,10 +105,10 @@ bool disasmfast(const unsigned char* data, duint addr, BASIC_INSTRUCTION_INFO* b
|
|||
return true;
|
||||
}
|
||||
|
||||
bool disasmfast(duint addr, BASIC_INSTRUCTION_INFO* basicinfo)
|
||||
bool disasmfast(duint addr, BASIC_INSTRUCTION_INFO* basicinfo, bool cache)
|
||||
{
|
||||
unsigned int data[16];
|
||||
if(!MemRead(addr, data, sizeof(data)))
|
||||
if(!MemRead(addr, data, sizeof(data), nullptr, cache))
|
||||
return false;
|
||||
return disasmfast((unsigned char*)data, addr, basicinfo);
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
#include <capstone_wrapper.h>
|
||||
|
||||
void fillbasicinfo(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, bool instrText = true);
|
||||
bool disasmfast(duint addr, BASIC_INSTRUCTION_INFO* basicinfo);
|
||||
bool disasmfast(duint addr, BASIC_INSTRUCTION_INFO* basicinfo, bool cache = false);
|
||||
bool disasmfast(const unsigned char* data, duint addr, BASIC_INSTRUCTION_INFO* basicinfo);
|
||||
|
||||
#endif //_DISASM_FAST_H
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ bool MemRead(duint BaseAddress, void* Buffer, duint Size, duint* NumberOfBytesRe
|
|||
if(!MemIsCanonicalAddress(BaseAddress))
|
||||
return false;
|
||||
|
||||
if(cache && !MemIsValidReadPtr(BaseAddress))
|
||||
if(cache && !MemIsValidReadPtr(BaseAddress, cache))
|
||||
return false;
|
||||
|
||||
// Buffer must be supplied and size must be greater than 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue