Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boost-stacktrace-fix #2

Open
wants to merge 76 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
a0b605b
boost-stacktrace: Stacktrace.cpp (+6) [37+/15-] - impl
skynowa Sep 27, 2024
effe6e1
boost-stacktrace: Backtrace_2.sh [1+/1-] - impl
skynowa Sep 27, 2024
651fe01
boost-stacktrace: Stacktrace.cpp [2+/2-] - impl
skynowa Sep 27, 2024
3571170
boost-stacktrace: Stacktrace.cpp [1+/1-] - impl
skynowa Sep 27, 2024
c955baa
boost-stacktrace: Stacktrace.cpp [2+/2-] - impl
skynowa Sep 27, 2024
a5dc1a8
boost-stacktrace: Stacktrace.cpp [1+/1-] - impl
skynowa Sep 27, 2024
4377c12
boost-stacktrace: Stacktrace.cpp [43+/11-] - impl
skynowa Sep 27, 2024
33990c8
boost-stacktrace: Stacktrace.cpp [1+/1-] - impl
skynowa Sep 27, 2024
730b8a0
boost-stacktrace: Stacktrace.cpp [7+/6-] - impl
skynowa Sep 27, 2024
f8703d2
boost-stacktrace: Backtrace_2.cpp [108+/27-] - impl
skynowa Sep 27, 2024
f7653ff
boost-stacktrace: Backtrace_2.cpp [1+/1-] - impl
skynowa Sep 27, 2024
c752cf3
boost-stacktrace: Backtrace_2.cpp [42+/7-] - impl
skynowa Sep 27, 2024
95406d1
boost-stacktrace: Backtrace_2.cpp [7+/29-] - impl
skynowa Sep 27, 2024
07e94f5
boost-stacktrace: Backtrace_2.cpp [3+/5-] - impl
skynowa Sep 27, 2024
4ec31af
boost-stacktrace: Backtrace_2.cpp [1-] - impl
skynowa Sep 27, 2024
ee945e6
boost-stacktrace: Backtrace_2.cpp [2+/2-] - impl
skynowa Sep 27, 2024
ff6ce32
boost-stacktrace: Backtrace_2.cpp [39+/20-] - impl
skynowa Sep 27, 2024
931e429
boost-stacktrace: Backtrace_2.cpp [25+/16-] - impl
skynowa Sep 27, 2024
0760b77
boost-stacktrace: Backtrace_2.cpp [3+/14-] - impl
skynowa Sep 27, 2024
cfe25d9
boost-stacktrace: Backtrace_2.cpp [6+/5-] - impl
skynowa Sep 27, 2024
1736248
boost-stacktrace: Backtrace_2.cpp [7+/4-] - impl
skynowa Sep 27, 2024
59dd890
boost-stacktrace: Backtrace_2.cpp [9+/9-] - impl
skynowa Sep 27, 2024
184aa27
boost-stacktrace: Backtrace_2.cpp [128+/126-] - impl
skynowa Sep 27, 2024
a4893d1
boost-stacktrace: Backtrace_2.cpp [7+/10-] - impl
skynowa Sep 27, 2024
8485247
boost-stacktrace: Backtrace_2.cpp [4+/3-] - impl
skynowa Sep 27, 2024
b522787
boost-stacktrace: Backtrace_2.cpp (+2) [2+/2-] - impl
skynowa Sep 27, 2024
911452b
boost-stacktrace: CMakeLists.txt [1+/1-] - impl
skynowa Sep 27, 2024
2d6e314
boost-stacktrace: CMakeLists.txt (+2) [3+/1-] - impl
skynowa Sep 27, 2024
94cb325
boost-stacktrace: Stacktrace.cpp [1+] - impl
skynowa Sep 27, 2024
2281458
boost-stacktrace: Backtrace_2.cpp [1+/2-] - impl
skynowa Sep 27, 2024
4945d79
boost-stacktrace: Backtrace_2.cpp [1+/1-] - impl
skynowa Sep 27, 2024
b19d57a
boost-stacktrace: Backtrace_2.cpp [6+/1-] - doc(s)
skynowa Sep 27, 2024
d915d5f
boost-stacktrace: Backtrace_2.cpp [3+/1-] - impl
skynowa Sep 27, 2024
4009c78
boost-stacktrace: Backtrace_2.sh [26+/3-] - impl
skynowa Sep 27, 2024
7ae8e39
boost-stacktrace: Backtrace_2.cpp [182+/87-] - As classes
skynowa Sep 27, 2024
1b52792
boost-stacktrace: Backtrace_2.cpp [2+/2-] - comment(s)
skynowa Sep 27, 2024
1a31591
boost-stacktrace: Backtrace_2.cpp [7+/7-] - fix
skynowa Sep 27, 2024
fae4e56
boost-stacktrace: Backtrace_2.cpp [7+/7-] - impl
skynowa Sep 27, 2024
1db3ee0
boost-stacktrace: CMakeLists.txt [3+/3-] - impl
skynowa Sep 27, 2024
50bcab0
boost-stacktrace: {Backtrace_2.sh => Backtrace_addr2line.sh} (+2) [3+…
skynowa Sep 27, 2024
32f67da
boost-stacktrace: Readme.md [2+/2-] - rename
skynowa Sep 27, 2024
e236f2c
boost-stacktrace: Backtrace_addr2line.cpp [2+/2-] - impl
skynowa Sep 27, 2024
aa3a774
boost-stacktrace: Readme.md [1+/1-] - update
skynowa Sep 27, 2024
062589b
boost-stacktrace: Backtrace_addr2line.cpp [15+/14-] - code style
skynowa Oct 5, 2024
28a2071
boost-stacktrace: Readme.md [1+/1-] - code style
skynowa Oct 5, 2024
d682e6b
merge
skynowa Oct 14, 2024
769a3fa
Merge: master -> boost-stacktrace-fix
skynowa Oct 14, 2024
ad38219
boost-stacktrace: Cpp.cpp [33+/3-] - impl
skynowa Oct 14, 2024
e3359ec
boost-stacktrace: Cpp.cpp [1+/1-] - impl
skynowa Oct 14, 2024
1619e0c
boost-stacktrace: Cpp.cpp [2+] - update
skynowa Oct 25, 2024
19c2573
Merge: master -> boost-stacktrace-fix
skynowa Oct 25, 2024
cae460c
Merge: master -> boost-stacktrace-fix
skynowa Oct 25, 2024
78cee70
boost-stacktrace: Cpp.cpp [4+] - update
skynowa Oct 28, 2024
41c4f31
boost-stacktrace: Readme.md [10+/3-] - update
skynowa Oct 28, 2024
d49ef4e
Merge: master -> boost-stacktrace-fix
skynowa Oct 29, 2024
35ad384
boost-stacktrace: ToPlain.cpp [8+/6-] - impl
skynowa Oct 30, 2024
e7b1dab
boost-stacktrace: Readme.md [11+/3-] - impl
skynowa Oct 30, 2024
cb3e7c2
boost-stacktrace: ToPlain.cpp [8+/1-] - impl
skynowa Oct 30, 2024
8ce31a7
boost-stacktrace: ToPlain.cpp [14+/15-] - impl
skynowa Oct 30, 2024
5061a36
Merge: master -> boost-stacktrace-fix
skynowa Nov 15, 2024
5521709
Merge: master -> boost-stacktrace-fix
skynowa Dec 19, 2024
2e5246d
Merge: master -> boost-stacktrace-fix
skynowa Dec 19, 2024
e4122c7
Merge: master -> boost-stacktrace-fix
skynowa Dec 31, 2024
02b7d3e
merge
skynowa Jan 1, 2025
54b33cd
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
bbdc3e6
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
06e8902
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
edb925e
merge
skynowa Jan 2, 2025
afb42e2
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
08ff814
boost-stacktrace: Cpp.cpp [2+/2-] - --amend
skynowa Jan 2, 2025
338ecaa
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
4af0234
Merge: master -> boost-stacktrace-fix
skynowa Jan 2, 2025
3997b1e
Merge: master -> boost-stacktrace-fix
skynowa Jan 3, 2025
8fb16be
Merge: master -> boost-stacktrace-fix
skynowa Jan 3, 2025
02b6872
Merge: master -> boost-stacktrace-fix
skynowa Jan 3, 2025
b728edb
Merge: master -> boost-stacktrace-fix
skynowa Jan 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ if (NOT CMAKE_BUILD_TYPE)
endif()
#--------------------------------------------------------------------------------------------------
find_package(X11 REQUIRED)
# find_package(Libssh2 REQUIRED)
find_package(Libssh2 REQUIRED)
# find_package(Libevent REQUIRED)
# find_package(OpenSSL REQUIRED)
# find_package(ZLIB REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
#--------------------------------------------------------------------------------------------------
file(GLOB_RECURSE SOURCES
${CMAKE_SOURCE_DIR}/*.c
Expand Down Expand Up @@ -82,6 +82,10 @@ foreach(IT_SOURCE ${SOURCES})
# libevent::libevent
# openssl::openssl
# ZLIB::ZLIB
backtrace # https://github.com/ianlancetaylor/libbacktrace - for boost::stacktrace
ssh2
unwind
event
)

# Targets - Build, run single test
Expand Down
59 changes: 53 additions & 6 deletions Libs/Boost/Stacktrace.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
/**
* \file Stacktrace.cpp
* \brief boost::stacktrace
*
* \see https://github.com/ianlancetaylor/libbacktrace
* sudo apt-get install libbacktrace-dev
*
* g++ -DBOOST_STACKTRACE_USE_ADDR2LINE -ggdb -rdynamic Stacktrace.cpp -o bb -lboost_stacktrace_addr2line -ldl -O0 -fno-omit-frame-pointer -lboost_stacktrace_addr2line && ./bb
*/


Expand All @@ -12,22 +17,64 @@
#include <boost/version.hpp>
#endif

#if (BOOST_VERSION > 0)
#define BOOST_STACKTRACE_USE_ADDR2LINE 1
#if 1 || (BOOST_VERSION > 0)
// NOTE: BOOST_STACKTRACE_USE_ADDR2LINE - not working
#define BOOST_STACKTRACE_USE_BACKTRACE 1
#include <boost/stacktrace.hpp>
#endif
//-------------------------------------------------------------------------------------------------
std::string
executableName(
const boost::stacktrace::frame &a_frame
)
{
// The first frame usually represents the main function or entry point
if ( a_frame.empty() ) {
return "Unknown executable"; // Fallback if unable to determine
}

const auto addr = a_frame.address();
if (addr == nullptr) {
return {};
}

Dl_info info {};
if (::dladdr(addr, &info) == 0) {
return {};
}

if (info.dli_fname == nullptr) {
return {};
}

return info.dli_fname;
}
//-------------------------------------------------------------------------------------------------
int main(int , char **)
{
#if (BOOST_VERSION > 0)
const auto &aRv = boost::stacktrace::stacktrace();
#if 1 || (BOOST_VERSION > 0)
const auto &stackTrace = boost::stacktrace::stacktrace();

for (const auto &it_frame : stackTrace.as_vector()) {
std::cout << "------------------------------" << std::endl;

std::cout << aRv.as_vector() << std::endl;
if (0) {
std::cout << STD_TRACE_VAR(it_frame) << '\n' << std::endl;
} else {
std::cout
<< "module: " << ::executableName(it_frame) << "\n"
<< "\n"
<< STD_TRACE_VAR(it_frame.name()) << "\n"
<< STD_TRACE_VAR(it_frame.address()) << "\n"
<< STD_TRACE_VAR(it_frame.source_file()) << "\n"
<< STD_TRACE_VAR(it_frame.source_line()) << std::endl;
}
}
#else
std::cout << "Boost - not instaled, skip" << std::endl;
#endif

return EXIT_SUCCESS;
return EXIT_SUCCESS;
}
//-------------------------------------------------------------------------------------------------

Expand Down
164 changes: 0 additions & 164 deletions OS/Unix/Backtrace_2.cpp

This file was deleted.

10 changes: 0 additions & 10 deletions OS/Unix/Backtrace_2.sh

This file was deleted.

Loading