#include "LibSymbolInfo.h"
Definition at line 44 of file LibSymbolInfo.h.
CLibSymbolInfo::CLibSymbolInfo |
( |
| ) |
|
CLibSymbolInfo::~CLibSymbolInfo |
( |
| ) |
|
|
virtual |
CLibSymbolInfo::CLibSymbolInfo |
( |
| ) |
|
virtual CLibSymbolInfo::~CLibSymbolInfo |
( |
| ) |
|
|
virtual |
DWORD CLibSymbolInfo::ConvertBigEndian |
( |
DWORD |
bigEndian | ) |
|
|
protected |
Definition at line 183 of file LibSymbolInfo.cpp.
187 temp |= bigEndian >> 24;
188 temp |= ((bigEndian & 0x00FF0000) >> 8);
189 temp |= ((bigEndian & 0x0000FF00) << 8);
190 temp |= ((bigEndian & 0x000000FF) << 24);
DWORD CLibSymbolInfo::ConvertBigEndian |
( |
DWORD |
bigEndian | ) |
|
|
protected |
BOOL CLibSymbolInfo::Dump |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
|
protected |
Definition at line 67 of file LibSymbolInfo.cpp.
References MEMORY_MAPPED_FILE::GetBase(), MEMORY_MAPPED_FILE::IsValid(), and MakePtr.
73 if( FALSE == libFile.IsValid() ) {
81 PSTR pArchiveStartString = (PSTR)libFile.GetBase();
83 if ( 0 != strncmp( pArchiveStartString, IMAGE_ARCHIVE_START,
84 IMAGE_ARCHIVE_START_SIZE ) ) {
91 PIMAGE_ARCHIVE_MEMBER_HEADER pMbrHdr;
92 pMbrHdr =
MakePtr( PIMAGE_ARCHIVE_MEMBER_HEADER, pArchiveStartString,
93 IMAGE_ARCHIVE_START_SIZE );
96 PDWORD pcbSymbols = (PDWORD)(pMbrHdr + 1);
104 PDWORD pMemberOffsets = pcbSymbols + 1;
108 PSTR pszSymbolName =
MakePtr( PSTR, pMemberOffsets, 4 * cSymbols );
113 for (
unsigned i = 0; i < cSymbols; i++ )
125 string symbol(pszSymbolName);
127 pFile << symbol << endl;
134 pszSymbolName += strlen(pszSymbolName) + 1;
BOOL IsFiltedSymbol(std::string &pszSymbolName)
DWORD ConvertBigEndian(DWORD bigEndian)
#define MakePtr(cast, ptr, addValue)
BOOL IsRegularLibSymbol(PSTR pszSymbolName)
std::string m_strErrorMsg
BOOL CLibSymbolInfo::Dump |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
|
protected |
BOOL CLibSymbolInfo::DumpSymbols |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
Definition at line 43 of file LibSymbolInfo.cpp.
Referenced by main().
45 if(lpszLibPathName == NULL || pFile.bad() ) {
46 assert(lpszLibPathName != NULL);
48 m_strErrorMsg.assign(
"NULL <lpszLibPathName> or Invalid file handle.");
52 if(!
Dump(lpszLibPathName, pFile))
return FALSE;
BOOL Dump(LPTSTR lpszLibPathName, std::ostream &pFile)
std::string m_strErrorMsg
BOOL CLibSymbolInfo::DumpSymbols |
( |
LPTSTR |
lpszLibPathName, |
|
|
std::ostream & |
pFile |
|
) |
| |
string CLibSymbolInfo::GetLastError |
( |
| ) |
const |
std::string CLibSymbolInfo::GetLastError |
( |
| ) |
const |
BOOL CLibSymbolInfo::IsFiltedSymbol |
( |
std::string & |
pszSymbolName | ) |
|
|
protected |
Definition at line 159 of file LibSymbolInfo.cpp.
162 if ( symbolName.substr(0,3) ==
"_CT" )
return FALSE;
163 if ( symbolName.substr(0,3) ==
"_TI" )
return FALSE;
165 if ( symbolName.substr(0,2) ==
"__" )
167 if ( symbolName.substr(0,3) ==
"??_" && symbolName[3] !=
'0')
169 if( symbolName[0] ==
'_') {
170 symbolName.erase(0, 1);
173 if (symbolName.find (
"detail@boost") != string::npos )
175 if (symbolName.find (
"details@boost") != string::npos )
BOOL CLibSymbolInfo::IsFiltedSymbol |
( |
std::string & |
pszSymbolName | ) |
|
|
protected |
BOOL CLibSymbolInfo::IsRegularLibSymbol |
( |
PSTR |
pszSymbolName | ) |
|
|
protected |
Definition at line 143 of file LibSymbolInfo.cpp.
145 if ( 0 == strncmp( pszSymbolName,
"__IMPORT_DESCRIPTOR_", 20 ) )
148 if ( 0 == strncmp( pszSymbolName,
"__NULL_IMPORT_DESCRIPTOR", 24 ) )
151 if ( strstr( pszSymbolName,
"_NULL_THUNK_DATA" ) )
BOOL CLibSymbolInfo::IsRegularLibSymbol |
( |
PSTR |
pszSymbolName | ) |
|
|
protected |
std::string CLibSymbolInfo::m_strErrorMsg |
|
protected |
std::string CLibSymbolInfo::m_strResultsString |
|
protected |
The documentation for this class was generated from the following files: