簡體   English   中英

使用clang ++和libc ++的linux上的std :: cerr會導致SIGABRT

[英]std::cerr on linux with clang++ and libc++ causes SIGABRT

我正在嘗試在使用clang ++ 3.3 libc ++ libc ++ abi編譯的Ubuntu 12.04 x64上運行一個簡單的程序。

程序:

#include <iostream>
int main(int argc, char **argv) {
  try {
    std::cerr << "Test cerr \n";
  } catch (...) {
    std::cout << "catch exception";
  }
  return 0;
}

寫入std :: cerr會打印消息,但會生成SIGABRT。

但是,寫入std :: cout工作正常。

這里是可執行文件的ldd輸出:

$ldd cerr_test
linux-vdso.so.1 =>  (0x00007fffce5ff000)
libc++abi.so.1 => /usr/local/lib/libc++abi.so.1 (0x00007fa4079fd000)
libc++.so.1 => /usr/local/lib/libc++.so.1 (0x00007fa407759000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa40745c000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa407246000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa406e87000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa406c69000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa406a61000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa407c55000)

任何人都可以給我一個提示如何解決這個問題?

這是回溯:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Test cerr

Program received signal SIGABRT, Aborted.
0x00007ffff704e425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) backtrace
#0  0x00007ffff704e425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff7051b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff792a437 in std::uncaught_exception() () from /usr/local/lib/libc++.so.1
#3  0x00007ffff79324e2 in std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry() ()
   from /usr/local/lib/libc++.so.1
#4  0x000000000040118e in std::__1::operator<< <std::__1::char_traits<char> > (__os=..., __str=0x401784 "Test cerr \n")
    at /usr/local/include/c++/v1/ostream:990
#5  0x0000000000400d41 in main (argc=1, argv=0x7fffffffe728) at cerr_test.cpp:5
(gdb)

最終使用libcxxrt代替libc ++ abi,​​如@chico建議的那樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM