Prints the full backtrace into a stream.
404 unsigned int nSkip = std::max(
options.skipLines, 0U);
405 std::vector<void*> buffer
406 (nSkip + std::max(
options.maxLines, 200U),
nullptr);
408 unsigned int const nItems
409 = (
unsigned int) backtrace(buffer.data(), buffer.size());
412 char**
symbols = backtrace_symbols(buffer.data(), buffer.size());
414 out <<
options.firstIndent <<
"<failed to get the call stack>\n"
418 std::vector<CallInfo_t> callStack;
419 for (
size_t i = 0; i < buffer.size(); ++i)
420 callStack.push_back((
const char*) symbols[i]);
423 size_t lastItem = nSkip +
options.maxLines;
424 if (lastItem > nItems) lastItem = nItems;
425 if (lastItem >= buffer.size()) --lastItem;
428 for (
size_t i = nSkip; i < lastItem; ++i) {
430 print(std::forward<Stream>(out), callStack[i]);
433 if ((lastItem < nItems) &&
options.countOthers) {
434 out <<
options.indent <<
" ... and other " << (nItems - lastItem);
435 if (nItems == buffer.size()) out <<
" (or more)";
then echo echo For and will not be changed by echo further linking echo echo B echo The symbol is in the uninitialized data multiple common symbols may appear with the echo same name If the symbol is defined the common echo symbols are treated as undefined references For more echo details on common symbols
do one_file $F done echo for F in find $TOP name CMakeLists txt print
then echo echo For and will not be changed by echo further linking echo echo B echo The symbol is in the uninitialized data multiple common symbols may appear with the echo same name If the symbol is defined the common echo symbols are treated as undefined references For more echo details on common see the discussion of warn common echo in *Note Linker options