#include <LibSymbolInfo.h>
Definition at line 15 of file LibSymbolInfo.h.
CLibSymbolInfo::CLibSymbolInfo |
( |
| ) |
|
CLibSymbolInfo::~CLibSymbolInfo |
( |
| ) |
|
|
virtual |
DWORD CLibSymbolInfo::ConvertBigEndian |
( |
DWORD |
bigEndian | ) |
|
|
protected |
Definition at line 158 of file LibSymbolInfo.cpp.
161 temp |= bigEndian >> 24;
162 temp |= ( ( bigEndian & 0x00FF0000 ) >> 8 );
163 temp |= ( ( bigEndian & 0x0000FF00 ) << 8 );
164 temp |= ( ( bigEndian & 0x000000FF ) << 24 );
BOOL CLibSymbolInfo::Dump |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
|
protected |
Definition at line 60 of file LibSymbolInfo.cpp.
65 if (
FALSE == libFile.IsValid() ) {
73 PSTR pArchiveStartString = (PSTR)libFile.GetBase();
75 if ( 0 !=
strncmp( pArchiveStartString, IMAGE_ARCHIVE_START, IMAGE_ARCHIVE_START_SIZE ) ) {
82 PIMAGE_ARCHIVE_MEMBER_HEADER pMbrHdr;
83 pMbrHdr =
MakePtr( PIMAGE_ARCHIVE_MEMBER_HEADER, pArchiveStartString, IMAGE_ARCHIVE_START_SIZE );
86 PDWORD pcbSymbols = ( PDWORD )( pMbrHdr + 1 );
94 PDWORD pMemberOffsets = pcbSymbols + 1;
98 PSTR pszSymbolName =
MakePtr( PSTR, pMemberOffsets, 4 * cSymbols );
103 for (
unsigned i = 0; i < cSymbols; i++ ) {
114 string symbol( pszSymbolName );
121 pszSymbolName +=
strlen( pszSymbolName ) + 1;
#define MakePtr(cast, ptr, addValue)
std::string m_strErrorMsg
BOOL IsFiltedSymbol(std::string &pszSymbolName)
DWORD ConvertBigEndian(DWORD bigEndian)
BOOL IsRegularLibSymbol(PSTR pszSymbolName)
BOOL CLibSymbolInfo::DumpSymbols |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
Definition at line 37 of file LibSymbolInfo.cpp.
38 if ( lpszLibPathName == NULL || pFile.
bad() ) {
39 assert( lpszLibPathName != NULL );
40 assert( pFile.
good() );
45 if ( !
Dump( lpszLibPathName, pFile ) )
return FALSE;
BOOL Dump(LPTSTR lpszLibPathName, std::ostream &pFile)
std::string m_strErrorMsg
string CLibSymbolInfo::GetLastError |
( |
| ) |
const |
BOOL CLibSymbolInfo::IsFiltedSymbol |
( |
std::string & |
pszSymbolName | ) |
|
|
protected |
Definition at line 142 of file LibSymbolInfo.cpp.
143 if ( symbolName.compare( 0, 2,
"__" ) == 0 )
return FALSE;
144 if ( symbolName.compare( 0, 3,
"??_" ) == 0 && symbolName[3] !=
'0' )
146 if ( symbolName[0] ==
'_' ) {
147 symbolName.erase( 0, 1 );
150 if ( symbolName.find(
"detail@boost" ) != string::npos )
return FALSE;
151 if ( symbolName.find(
"details@boost" ) != string::npos )
return FALSE;
BOOL CLibSymbolInfo::IsRegularLibSymbol |
( |
PSTR |
pszSymbolName | ) |
|
|
protected |
Definition at line 130 of file LibSymbolInfo.cpp.
131 if ( 0 ==
strncmp( pszSymbolName,
"__IMPORT_DESCRIPTOR_", 20 ) )
return FALSE;
133 if ( 0 ==
strncmp( pszSymbolName,
"__NULL_IMPORT_DESCRIPTOR", 24 ) )
return FALSE;
135 if (
strstr( pszSymbolName,
"_NULL_THUNK_DATA" ) )
return FALSE;
The documentation for this class was generated from the following files: