Отладка приложений


         

OUT PDWORD pdwDisplacement, OUT PIMAGEHLP_LINE


OUT PIMAGEHLP__MODULE Modulelnfo ) 
{
return ( ::SymGetModulelnfo ( m_hProcess ,
dwAddr ,
 Modulelnfo )); 
}
DWORD SymGetModuleBase ( IN DWORD dwAddr) 
{
return ( ::SymGetModuleBase ( m_hProcess, dwAddr));
 }
 /*- - - - - - - - - - - - - - - - - - - - - - - - - - 
Public-методы манипуляций с символами
- - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
public :
BOOL SymEnumerateSymbols ( IN DWORD BaseOfDll,
IN PSYM_ENUMSYMBOLS_CALLBACK
EnumSymbolsCallback,
IN PVOID UserContext) 
{
return ( ::SymEnumerateSymbols ( m_hProcess ,
BaseOfDll
EnumSymbolsCallback, 
UserContext )); 
}
BOOL SymGetSymFromAddr ( IN DWORD dwAddr ,
OUT PDWORD pdwDisplacement, 
OUT PIMAGEHLP_SYMBOL Symbol ) 
{
return ( ::SymGetSymFromAddr ( m_hProcess ,
dwAddr , 
pdwDisplacement , 
Symbol )); 
}
BOOL SymGetSymFromName ( IN LPSTR Name ,
OUT PIMAGEHLP_SYMBOL Symbol )
{
return ( ::SymGetSymFromName ( m_hProcess,
Name ,
 Symbol }}; 
}
BOOL SymGetSymNext ( IN OUT PIMAGEHLP_SYMBOL Symbol)
 {
return ( ::SymGetSymNext ( m_hProcess, Symbol)); 
}
BOOL SymGetSymPrev ( IN OUT PIMAGEHLP_SYMBOL Symbol)
 {
return ( ::SymGetSymPrev ( m_hProcess, Symbol));
}
 /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Public-метод манипуляций с исходной строкой
- - - -- - - - - - - - - - - - - - - - - - - - - - - - - */
public :
BOOL SymGetLineFromAddr ( IN DWORD dwAddr ,
OUT PDWORD pdwDisplacement, OUT PIMAGEHLP_LINE Line ) 
{
# ifde f DO_NOT_WORK_AROUND_SRCLINE_BUG
// Просто передайте значения, возвращенные main-функцией
 return ( ::SymGetLineFromAddr ( m_hProcess ,
dwAddr 
, pdwDisplacement, 
Line ) ) ;
#else
// Проблема в том, что символьная машина находит только те адреса
 // исходных строк (после первого поиска), которые попадают точно
 //на нулевые смещения. Чтобы найти строку и возвратить

Содержание  Назад  Вперед