lots of debug tracing, fixed bug

This commit is contained in:
noonebtw 2022-01-20 21:30:11 +01:00
parent 45192f895b
commit c5f7a98382

View file

@ -11,7 +11,7 @@ use std::{
use lazy_static::lazy_static; use lazy_static::lazy_static;
use log::error; use log::error;
use utils::string::ToWide; use utils::{string::ToWide, win32::Win32Error};
use winapi::{ use winapi::{
shared::ntdef::{HANDLE, ULONG}, shared::ntdef::{HANDLE, ULONG},
um::{ um::{
@ -105,6 +105,8 @@ impl ImageHelp {
} }
}?; }?;
log::debug!("trying GetProcAddress");
let proc_addr = unsafe { let proc_addr = unsafe {
let func_cname = CString::new(function_name)?; let func_cname = CString::new(function_name)?;
let proc_adr = GetProcAddress(module_handle, func_cname.as_ptr()); let proc_adr = GetProcAddress(module_handle, func_cname.as_ptr());
@ -117,7 +119,9 @@ impl ImageHelp {
return Ok(proc_addr.as_ptr() as *const _); 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( dbghelp::SymLoadModuleExW(
GetCurrentProcess(), GetCurrentProcess(),
null_mut(), null_mut(),
@ -128,7 +132,14 @@ impl ImageHelp {
null_mut(), null_mut(),
0, 0,
) != 0 ) != 0
})?; }) {
Ok(_) => Ok(()),
Err(Win32Error { error_code: 0 }) => {
log::debug!("Symbols already loaded.");
Ok(())
}
Err(err) => Err(err),
}?;
let try_find_symbol = || { let try_find_symbol = || {
let mut sym_info = let mut sym_info =
@ -138,6 +149,8 @@ impl ImageHelp {
let symbol_name_utf16 = function_name.to_wide_null(); let symbol_name_utf16 = function_name.to_wide_null();
sym_info.MaxNameLen = 255; sym_info.MaxNameLen = 255;
log::debug!("SymFromNameW..");
utils::win32::error::true_or_last_error(|| unsafe { utils::win32::error::true_or_last_error(|| unsafe {
dbghelp::SymFromNameW(*process_handle, symbol_name_utf16.as_ptr(), &mut sym_info) dbghelp::SymFromNameW(*process_handle, symbol_name_utf16.as_ptr(), &mut sym_info)
!= 0 != 0