Improvement for trace printing with missing symbols or filenames

This commit is contained in:
Jeremy 2023-11-15 15:10:22 -05:00
parent 79bc580519
commit 520962162c
No known key found for this signature in database
GPG Key ID: BE03111EB7ED6E2E

View File

@ -120,17 +120,23 @@ namespace cpptrace {
<< std::setfill('0') << std::setfill('0')
<< frame.address << frame.address
<< std::dec << std::dec
<< std::setfill(' ') << std::setfill(' ');
<< " in " if(!frame.symbol.empty()) {
<< frame.symbol
<< " at "
<< frame.filename;
if(frame.line.has_value()) {
stream stream
<< ":" << " in "
<< frame.line.value(); << frame.symbol;
if(frame.column.has_value()) { }
stream << frame.column.value(); if(!frame.filename.empty()) {
stream
<< " at "
<< frame.filename;
if(frame.line.has_value()) {
stream
<< ":"
<< frame.line.value();
if(frame.column.has_value()) {
stream << frame.column.value();
}
} }
} }
return stream; return stream;
@ -197,26 +203,31 @@ namespace cpptrace {
<< std::setfill(' ') << std::setfill(' ')
<< reset; << reset;
} }
stream if(!frame.symbol.empty()) {
<< " in "
<< yellow
<< frame.symbol
<< reset
<< " at "
<< green
<< frame.filename
<< reset;
if(frame.line.has_value()) {
stream stream
<< ":" << " in "
<< blue << yellow
<< frame.line.value() << frame.symbol
<< reset; << reset;
if(frame.column.has_value()) { }
stream << ':' if(!frame.filename.empty()) {
<< blue stream
<< std::to_string(frame.column.value()) << " at "
<< reset; << green
<< frame.filename
<< reset;
if(frame.line.has_value()) {
stream
<< ":"
<< blue
<< frame.line.value()
<< reset;
if(frame.column.has_value()) {
stream << ':'
<< blue
<< std::to_string(frame.column.value())
<< reset;
}
} }
} }
if(newline_at_end || &frame != &frames.back()) { if(newline_at_end || &frame != &frames.back()) {