FairRootGroup / FairMQ

C++ Message Queuing Library and Framework
GNU Lesser General Public License v3.0
86 stars 34 forks source link

Make Error classes header only #466

Closed rbx closed 1 year ago

dennisklein commented 1 year ago

Hm, it segfaults on apple clang :(

rbx commented 1 year ago
(lldb) target create "test/testsuite_Device"
Current executable set to '/Users/orybalch/dev/FairMQ/build/test/testsuite_Device' (x86_64).
(lldb) settings set -- target.run-args  "--gtest_filter=Transitions.InvalidChangeStateOrThrow" "--gtest_also_run_disabled_tests"
(lldb) r
Process 8659 launched: '/Users/orybalch/dev/FairMQ/build/test/testsuite_Device' (x86_64)
Note: Google Test filter = Transitions.InvalidChangeStateOrThrow
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Transitions
[ RUN      ] Transitions.InvalidChangeStateOrThrow
[STATE] Starting FairMQ state machine --> IDLE
[STATE] No transition from state IDLE on transition CONNECT
Process 8659 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x51)
    frame #0: 0x00007ff8091dd3ff libc++.1.dylib`std::__1::system_error::__init(std::__1::error_code const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 81
libc++.1.dylib`std::__1::system_error::__init:
->  0x7ff8091dd3ff <+81>: callq  *0x30(%rax)
    0x7ff8091dd402 <+84>: movzbl (%r15), %edx
    0x7ff8091dd406 <+88>: testb  $0x1, %dl
    0x7ff8091dd409 <+91>: je     0x7ff8091dd415            ; <+103>
Target 0: (testsuite_Device) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x51)
  * frame #0: 0x00007ff8091dd3ff libc++.1.dylib`std::__1::system_error::__init(std::__1::error_code const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 81
    frame #1: 0x00007ff8091dd6e9 libc++.1.dylib`std::__1::system_error::system_error(int, std::__1::error_category const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 69
    frame #2: 0x000000010000eb9c testsuite_Device`fair::mq::Device::ChangeStateOrThrow(this=0x00007ff7bfefe8c8, transition=Connect) at Device.h:531:19 [opt]
    frame #3: 0x0000000100032265 testsuite_Device`(anonymous namespace)::Transitions_InvalidChangeStateOrThrow_Test::TestBody(this=<unavailable>) at _transitions.cxx:39:5 [opt]
    frame #4: 0x000000010008694b testsuite_Device`void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 123
    frame #5: 0x000000010004bf3a testsuite_Device`void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 106
    frame #6: 0x000000010004be83 testsuite_Device`testing::Test::Run() + 195
    frame #7: 0x000000010004ce82 testsuite_Device`testing::TestInfo::Run() + 290
    frame #8: 0x000000010004df5d testsuite_Device`testing::TestSuite::Run() + 317
    frame #9: 0x000000010005d1cd testsuite_Device`testing::internal::UnitTestImpl::RunAllTests() + 1005
    frame #10: 0x000000010008b6cb testsuite_Device`bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 123
    frame #11: 0x000000010005cb7a testsuite_Device`bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 106
    frame #12: 0x000000010005ca65 testsuite_Device`testing::UnitTest::Run() + 197
    frame #13: 0x0000000100006719 testsuite_Device`main [inlined] RUN_ALL_TESTS() at gtest.h:2284:73 [opt]
    frame #14: 0x000000010000670c testsuite_Device`main(argc=1, argv=<unavailable>) at runner.cxx:30:12 [opt]
    frame #15: 0x00000001001b152e dyld`start + 462