MCPcopy Create free account
hub / github.com/boostorg/build / GetFileLineFromAddress

Function GetFileLineFromAddress

v2/engine/boehm_gc/msvc_dbg.c:238–263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238size_t GetFileLineFromAddress(void* address, char* fileName, size_t size, size_t* lineNumber, size_t* offsetBytes)
239{
240 if (size) *fileName = 0;
241 if (lineNumber) *lineNumber = 0;
242 if (offsetBytes) *offsetBytes = 0;
243 {
244 char* sourceName;
245 IMAGEHLP_LINE line = { sizeof (line) };
246 ULONG_PTR dwOffset = 0;
247 if (!SymGetLineFromAddr(GetSymHandle(), CheckAddress(address), &dwOffset, &line)) {
248 return 0;
249 }
250 if (lineNumber) {
251 *lineNumber = line.LineNumber;
252 }
253 if (offsetBytes) {
254 *offsetBytes = dwOffset;
255 }
256 sourceName = line.FileName;
257 // TODO: resolve relative filenames, found in 'source directories' registered with MSVC IDE.
258 if (size) {
259 strncpy(fileName, sourceName, size)[size - 1] = 0;
260 }
261 return strlen(sourceName);
262 }
263}
264
265size_t GetFileLineFromStack(size_t skip, char* fileName, size_t size, size_t* lineNumber, size_t* offsetBytes)
266{

Callers 2

GetFileLineFromStackFunction · 0.85

Calls 2

GetSymHandleFunction · 0.85
CheckAddressFunction · 0.85

Tested by

no test coverage detected