什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register? [英] What are _Unwind_SjLj_Unregister and _Unwind_SjLj_Register?

查看:1475
本文介绍了什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register?我得到他们作为我的最佳处理器时间用户在我的gprof报告。 google只返回指向那些抱怨这两个错误的人的链接。



是我的报告中唯一有时间为!= 0的部分:

 平面轮廓:

每个样本计数为0.01秒。
%累积自我总计
时间秒秒调用ms /调用ms /调用名
33.33 0.03 0.03 _Unwind_SjLj_Unregister
22.22 0.05 0.02 _Unwind_SjLj_Register
11.11 0.06 0.01 13886 0.00 0.00 toint(std :: string,int)
11.11 0.07 0.01 4380 0.00 0.00 hexlify(std :: string)
11.11 0.08 0.01 2994 0.00 0.00 std :: _ Deque_iterator< unsigned char,unsigned char const& char const *> :: operator +(int)const
11.11 0.09 0.01 std :: string :: assign(char const *,unsigned int)

运行windows 7 x64,并用代码块编译10.05 gcc



编辑 / p>

启用强制程序运行64秒的函数后,它现在看起来像:

 code>平面轮廓:

每个样本计数为0.01秒。
%累计自我总计
时间秒秒调用s /调用s /调用名
8.45 3.49 3.49 _Unwind_SjLj_Register
7.36 6.53 3.04 4000006 0.00 0.00 CAST128 :: setkey(std :: string)
5.86 8.95 2.42 _Unwind_SjLj_Unregister
4.36 10.75 1.80 64000080 0.00 0.00 CAST128 :: F(int& unsigned int& unsigned int& unsigned char&)
3.68 12.27 1.52 __dynamic_cast
3.37 13.66 1.39 std :: string :: _ Rep :: _ S_create(unsigned int,unsigned int,std :: allocator< char> const&)
3.25 15.00 1.34 std :: basic_string< char,std :: char_traits< ; char>,std :: allocator< char> > ::〜basic_string()
2.88 16.19 1.19 std :: istreambuf_iterator< char,std :: char_traits< char> > std :: num_get< char,std :: istreambuf_iterator< char,std :: char_traits< char> > > :: _ M_extract_int< unsigned long long>(std :: istreambuf_iterator< char,std :: char_traits< char>>,std :: istreambuf_iterator< char,std :: char_traits< char>>,std :: ios_base& ,std :: _ Ios_Iostate& unsigned long long&)const


解决方案

p>我相信这是异常处理。当人们尝试链接到在不同编译器中构建的C ++库时,问题大多出现。


What are _Unwind_SjLj_Unregister and _Unwind_SjLj_Register? I get them as my top processor time users in my gprof report. google only returns links to people complaining about errors with these two.

heres the only part of my report that has times != 0:

Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 33.33      0.03     0.03                             _Unwind_SjLj_Unregister
 22.22      0.05     0.02                             _Unwind_SjLj_Register
 11.11      0.06     0.01    13886     0.00     0.00  toint(std::string, int)
 11.11      0.07     0.01     4380     0.00     0.00  hexlify(std::string)
 11.11      0.08     0.01     2994     0.00     0.00  std::_Deque_iterator<unsigned char, unsigned char const&, unsigned char const*>::operator+(int) const
 11.11      0.09     0.01                             std::string::assign(char const*, unsigned int)

im running windows 7 x64, and compiling with codeblocks 10.05 gcc

edit:

after enabling functions that force the program to run 64 seconds, it now looks like:

Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
  8.45      3.49     3.49                             _Unwind_SjLj_Register
  7.36      6.53     3.04  4000006     0.00     0.00  CAST128::setkey(std::string)
  5.86      8.95     2.42                             _Unwind_SjLj_Unregister
  4.36     10.75     1.80 64000080     0.00     0.00  CAST128::F(int&, unsigned int&, unsigned int&, unsigned char&)
  3.68     12.27     1.52                             __dynamic_cast
  3.37     13.66     1.39                             std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)
  3.25     15.00     1.34                             std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
  2.88     16.19     1.19                             std::istreambuf_iterator<char, std::char_traits<char> > std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_int<unsigned long long>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned long long&) const

解决方案

I believe it is exception handling. The problems mostly come up when people try to link to a C++ library built in a different compiler.

这篇关于什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆