lots of debug tracing, fixed bug
This commit is contained in:
parent
45192f895b
commit
c5f7a98382
19
src/lib.rs
19
src/lib.rs
|
@ -11,7 +11,7 @@ use std::{
|
|||
|
||||
use lazy_static::lazy_static;
|
||||
use log::error;
|
||||
use utils::string::ToWide;
|
||||
use utils::{string::ToWide, win32::Win32Error};
|
||||
use winapi::{
|
||||
shared::ntdef::{HANDLE, ULONG},
|
||||
um::{
|
||||
|
@ -105,6 +105,8 @@ impl ImageHelp {
|
|||
}
|
||||
}?;
|
||||
|
||||
log::debug!("trying GetProcAddress");
|
||||
|
||||
let proc_addr = unsafe {
|
||||
let func_cname = CString::new(function_name)?;
|
||||
let proc_adr = GetProcAddress(module_handle, func_cname.as_ptr());
|
||||
|
@ -117,7 +119,9 @@ impl ImageHelp {
|
|||
return Ok(proc_addr.as_ptr() as *const _);
|
||||
}
|
||||
|
||||
utils::win32::error::true_or_last_error(|| unsafe {
|
||||
log::debug!("SymLoadModuleExW..");
|
||||
|
||||
match utils::win32::error::true_or_last_error(|| unsafe {
|
||||
dbghelp::SymLoadModuleExW(
|
||||
GetCurrentProcess(),
|
||||
null_mut(),
|
||||
|
@ -128,7 +132,14 @@ impl ImageHelp {
|
|||
null_mut(),
|
||||
0,
|
||||
) != 0
|
||||
})?;
|
||||
}) {
|
||||
Ok(_) => Ok(()),
|
||||
Err(Win32Error { error_code: 0 }) => {
|
||||
log::debug!("Symbols already loaded.");
|
||||
Ok(())
|
||||
}
|
||||
Err(err) => Err(err),
|
||||
}?;
|
||||
|
||||
let try_find_symbol = || {
|
||||
let mut sym_info =
|
||||
|
@ -138,6 +149,8 @@ impl ImageHelp {
|
|||
let symbol_name_utf16 = function_name.to_wide_null();
|
||||
sym_info.MaxNameLen = 255;
|
||||
|
||||
log::debug!("SymFromNameW..");
|
||||
|
||||
utils::win32::error::true_or_last_error(|| unsafe {
|
||||
dbghelp::SymFromNameW(*process_handle, symbol_name_utf16.as_ptr(), &mut sym_info)
|
||||
!= 0
|
||||
|
|
Loading…
Reference in a new issue