【问题标题】:How to debug gRPC server crashing without any error?如何调试 gRPC 服务器崩溃而没有任何错误?
【发布时间】:2018-06-16 04:45:07
【问题描述】:

我已从gRPC helloworld example 复制粘贴的 gRPC 服务器。

它开始在指定端口侦听 RPC,但是当我使用复制粘贴的客户端调用 RPC 时,它会因“已中止(核心转储)”而崩溃,并且在客户端我收到错误消息“端点读取失败”。

我尝试通过在 RPC 函数实现中包含一些输出语句来调试它,但执行始终没有达到目的。

没有其他错误消息,是否有一些标志可以使故障更加详细以进行调试?

【问题讨论】:

  • 使用真正的调试器,而不是使用日志消息。

标签: c++ grpc


【解决方案1】:

除了上面提到的GRPC_VERBOSITY,您还应该将GRPC_TRACE 设置为http,secure_endpoint 并使用调试版本。完整的选项列表:https://github.com/grpc/grpc/blob/master/doc/environment_variables.md

【讨论】:

  • 我去过那个页面,很高兴它显示了环境变量是什么,但没有说明如何设置它们。我在windows上,在cmd.exe中用set或setx设置环境变量没有效果。
【解决方案2】:

IIUC 构建成功,所以我认为这个问题不需要#bazel 标签。

看起来您可以将GRPC_VERBOSITY 环境变量设置为值“DEBUG”、“INFO”或“ERROR”(https://github.com/grpc/grpc/blob/fead0879460da1a7990d43472f770bb4fe8145f6/src/core/lib/support/log.cc#L68) 以控制日志记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多