最新消息:

google-breakpad在C++ 11下编译错误修改

技术文章 NickYang 7274浏览 6评论

我只用到了exception_handler模块,暂时还未用到Server模块,因为用到了C++ 11的一些特性,而google-breadpad还没有C++11版本,所以做了一些修改,集中在类型定义处

1.

typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t;

修改为

#if __cplusplus > 199711L
typedef std::remove_reference<decltype(((struct user*) 0)->u_debugreg[0])>::type debugreg_t;
#else
typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t;
#endif

 

2.

typedef typeof(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;

修改为

#if __cplusplus > 199711L
typedef decltype(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
#else
typedef typeof(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
#endif

 

因C++11中用了decltype来声明类型,所以做了兼容

转载请注明:C++爱好者博客 » google-breakpad在C++ 11下编译错误修改

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (6)

  1. C++俺忘的差不多了,还给老师了
    成都SEO5年前 (2014-10-17)回复
  2. 来看看博主
    IT疯狂女5年前 (2014-10-12)回复
  3. 博客内容丰富,深刻!学习了!
    花开花落5年前 (2014-10-03)回复
  4. google-breakpad 是干啥用的啊,能拦截segment falt 么?
    Yu5年前 (2014-10-01)回复