C++ 回溯符号给了我一个错误

C++ 回溯符号给了我一个错误,c++,gnu,C++,Gnu,此处定义了异常: class MyException : public std::system_error { using std::system_error::system_error; public: const char* test () const throw () { void * array[30000]; int nSize = backtrace(array, 30000); char ** symbols = backtrace_symbol

此处定义了异常:

class MyException : public std::system_error {
  using std::system_error::system_error;
  public:
  const char* test () const throw () {
    void * array[30000];
    int nSize = backtrace(array, 30000);
    char ** symbols = backtrace_symbols(array, nSize);

    for (int i = 0; i < nSize; i++) {
      std::cout << symbols[i] << std::endl;

    }

    free(symbols);
  }
};
类MyException:public std::system\u错误{
使用std::system\u error::system\u error;
公众:
常量字符*测试()常量抛出(){
void*数组[30000];
int nSize=回溯(数组,30000);
字符**符号=回溯符号(数组,nSize);
对于(int i=0;itest()
不会返回任何内容

  const char* test () const throw () {
    void * array[30000];
    int nSize = backtrace(array, 30000);
    char ** symbols = backtrace_symbols(array, nSize);

    for (int i = 0; i < nSize; i++) {
      std::cout << symbols[i] << std::endl;

    }

    free(symbols);
  }
const char*test()const throw(){
void*数组[30000];
int nSize=回溯(数组,30000);
字符**符号=回溯符号(数组,nSize);
对于(int i=0;istd::cout该函数不返回任何内容。30000个void指针的堆栈空间为240KB,在某些情况下可能足以使线程的堆栈溢出。您可能希望将其缩减为较小的数字(例如64),因为在大多数情况下,感兴趣的只是前几个条目。
} catch (MyException& e) {
    std::cout << "Caught system_error with code " << e.code()
      << " meaning " << e.what() << e.test() << '\n';
  }
  const char* test () const throw () {
    void * array[30000];
    int nSize = backtrace(array, 30000);
    char ** symbols = backtrace_symbols(array, nSize);

    for (int i = 0; i < nSize; i++) {
      std::cout << symbols[i] << std::endl;

    }

    free(symbols);
  }