Definition at line 153 of file pfm_gen_analysis.cpp.
◆ Offset
◆ SymbolCache
◆ FileInfo() [1/2]
FileInfo::FileInfo |
( |
void |
| ) |
|
|
inline |
◆ FileInfo() [2/2]
FileInfo::FileInfo |
( |
const std::string & |
name, |
|
|
bool |
useGdb |
|
) |
| |
|
inline |
◆ createOffsetMap()
void FileInfo::createOffsetMap |
( |
void |
| ) |
|
|
inlineprivate |
Definition at line 196 of file pfm_gen_analysis.cpp.
202 bool matched =
false;
203 while ( objdump.output() ) {
213 if ( !objdump.output() )
break;
214 if (
line.empty() )
continue;
215 const char* lineptr =
line.c_str();
217 if ( !
skipString(
"LOAD", lineptr, &lineptr ) )
continue;
219 if ( !
skipString(
"off", lineptr, &lineptr ) )
continue;
221 int initialBase =
strtol( lineptr, &endptr, 16 );
222 if ( lineptr == endptr )
continue;
225 if ( !
skipString(
"vaddr", lineptr, &lineptr ) )
continue;
227 int finalBase =
strtol( lineptr, &endptr, 16 );
228 if ( lineptr == endptr )
continue;
229 vmbase = finalBase - initialBase;
234 fprintf( stderr,
"Cannot determine VM base address for %s\n",
NAME.
c_str() );
240 while (
nm.output() ) {
243 if ( !
nm.output() )
break;
244 if (
line.empty() )
continue;
249 if ( endptr ==
begin )
continue;
250 if ( *endptr++ !=
' ' )
continue;
251 if (
isspace( *endptr++ ) )
continue;
252 if ( *endptr++ !=
' ' )
continue;
253 char* symbolName = endptr;
254 while ( *endptr && !
isspace( *endptr ) ) endptr++;
255 if ( *endptr != 0 )
continue;
257 if ( symbolName[0] ==
'.' )
continue;
262 int offset = address - vmbase;
◆ next()
◆ symbolByOffset()
const char* FileInfo::symbolByOffset |
( |
Offset |
offset | ) |
|
|
inline |
Definition at line 162 of file pfm_gen_analysis.cpp.
166 if ( i->OFFSET == offset ) {
return i->NAME.c_str(); }
172 return i->NAME.c_str();
◆ m_symbolCache
◆ NAME
The documentation for this class was generated from the following file: