gydong commented on PR #2256: URL: https://github.com/apache/brpc/pull/2256#issuecomment-1562238209
> > 这个 fix 只对 gcc 生效吗?其他编译器是否有试过 > >  > > **clang也是生效的(clang14)**,这是没有加 noexcept(false)的clang堆栈 (**ps: llvm yyds!!!堆栈直接就在baidu::rpc::InputMessenger::InputMessageClosure::~InputMessageClosure 不像gcc那么隐晦**,哈哈)  > > 这是修复后的:  哈哈,这个实践太棒了,赞! 之前关于 GCC 的堆栈,有一点不明白为什么会在 InputMessageClosure::~InputMessageClosure 的析构调用链上直接去调用了 _Unwind_Resume,就好像是 GCC 知道哪个是最终的叶子节点似的。 因为按照我的理解,~InputMessageClosure 作为 landing pad,它本身这一层 frame 要么就全部完成退栈,要么就一点也不退栈,直接 std::terminate()(关于这块,标准中如何规定的不太清楚)。而,GCC 那个堆栈看起来就像是执行了一部分退栈,过程中,突然转去 _Unwind_Resume 了,令我百思不得其解。 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
