首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >捕获来自另一个进程的异常

捕获来自另一个进程的异常
EN

Stack Overflow用户
提问于 2014-06-02 07:32:46
回答 2查看 276关注 0票数 1

我想知道捕获异常的可能性,以及在进程中的任何进程或线程中可能发生的相关堆栈跟踪。这是否可能(例如在Linux中)?请看一看我试图做的事情的一个例子:

  • OS : Linux
  • P1:(在其中运行一些应用程序)
  • P2 : Python过程
  • P3 : C++工艺
  • P4 :我的自定义监控代码(监听P1、P2、P3中可能出现的异常)

假设P1生成一个发生在it代码中的异常(例如NullPointerException),该异常在Java代码中被正确捕获,相关的异常处理过程运行。类似地,P2和P3可能会在稍后时间发生异常。

P4 (另一个进程只侦听P1、P2和P3中的异常)能捕获P1、P2、P3中所有已处理/未处理的异常吗?在Linux中甚至有可能吗?如果是的话,要做到这一点需要什么呢?

EN

回答 2

Stack Overflow用户

发布于 2014-06-02 08:19:29

在Linux中,您可以使用主要内置的接口进行调试。查找系统调用ptrace。

从人类的轨迹

ptrace()系统调用提供了一种方法,其中一个进程( "tracer")可以观察和控制另一个进程( "tracee")的执行,并检查和更改tracee的内存和寄存器。它主要用于实现断点调试和系统调用跟踪。

如果您想知道如何从您正在跟踪的进程中获取内部信息,您应该从gdb源开始。也许可以看看gdb/linux-nat.c作为起点。

但是这给了你运行的东西的操作系统视图。python脚本本身无法运行和跟踪。相反,可以跟踪python解释器。但是,您可以从操作系统获得的信息不会从python语言本身提供任何有用的信息。调试python脚本或java字节码程序非常特殊。如果可用,您必须连接到解释器的调试接口。对于python,您可以获得一个调试器pdb。也许您可以开始检查这些源如何调试python程序。

祝你好运:-)

票数 1
EN

Stack Overflow用户

发布于 2014-06-02 07:45:08

实现这一目标的一种实际、直接的方法:

将P1-3中的所有错误记录到日志文件中。

使用P4查看这些日志文件。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23989391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档