#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 164 of file LibSymbolInfo.cpp.
168 temp |= bigEndian >> 24;
169 temp |= ( ( bigEndian & 0x00FF0000 ) >> 8 );
170 temp |= ( ( bigEndian & 0x0000FF00 ) << 8 );
171 temp |= ( ( bigEndian & 0x000000FF ) << 24 );
BOOL CLibSymbolInfo::Dump |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
|
protected |
Definition at line 61 of file LibSymbolInfo.cpp.
67 if (
FALSE == libFile.IsValid() ) {
75 PSTR pArchiveStartString = (PSTR)libFile.GetBase();
77 if ( 0 !=
strncmp( pArchiveStartString, IMAGE_ARCHIVE_START, IMAGE_ARCHIVE_START_SIZE ) ) {
84 PIMAGE_ARCHIVE_MEMBER_HEADER pMbrHdr;
85 pMbrHdr =
MakePtr( PIMAGE_ARCHIVE_MEMBER_HEADER, pArchiveStartString, IMAGE_ARCHIVE_START_SIZE );
88 PDWORD pcbSymbols = ( PDWORD )( pMbrHdr + 1 );
96 PDWORD pMemberOffsets = pcbSymbols + 1;
100 PSTR pszSymbolName =
MakePtr( PSTR, pMemberOffsets, 4 * cSymbols );
105 for (
unsigned i = 0; i < cSymbols; i++ ) {
116 string symbol( pszSymbolName );
118 pFile << symbol <<
endl;
125 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.
39 if ( lpszLibPathName == NULL || pFile.
bad() ) {
40 assert( lpszLibPathName != NULL );
41 assert( pFile.
good() );
46 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 147 of file LibSymbolInfo.cpp.
149 if ( symbolName.compare( 0, 2,
"__" ) == 0 )
return FALSE;
150 if ( symbolName.compare( 0, 3,
"??_" ) == 0 && symbolName[3] !=
'0' )
152 if ( symbolName[0] ==
'_' ) {
153 symbolName.erase( 0, 1 );
156 if ( symbolName.find(
"detail@boost" ) != string::npos )
return FALSE;
157 if ( symbolName.find(
"details@boost" ) != string::npos )
return FALSE;
BOOL CLibSymbolInfo::IsRegularLibSymbol |
( |
PSTR |
pszSymbolName | ) |
|
|
protected |
Definition at line 134 of file LibSymbolInfo.cpp.
136 if ( 0 ==
strncmp( pszSymbolName,
"__IMPORT_DESCRIPTOR_", 20 ) )
return FALSE;
138 if ( 0 ==
strncmp( pszSymbolName,
"__NULL_IMPORT_DESCRIPTOR", 24 ) )
return FALSE;
140 if (
strstr( pszSymbolName,
"_NULL_THUNK_DATA" ) )
return FALSE;
The documentation for this class was generated from the following files: