C# 程序挂点识别

C# 程序挂点识别,c#,freeze,C#,Freeze,有一个C程序很少挂起。程序在远程计算机上执行,启动调试器不是一个选项。运行外部探查器更现实,但也有巨大的困难。如果没有探查器或调试器,如何确定程序挂起点 在FS上详细记录选项并不合适。该程序由大约2万行代码组成,挂起的次数不多 我尝试过Process Explorer,但它的工作原理非常奇怪,或者我不理解它。如果您已经设法捕捉到线程进入无限循环的时刻,就有可能在那个时刻看到堆栈。但是这个线程很快就消失了,不管是在PE中,还是真的被环境杀死了 可以选择创建另一个应用程序application mo

有一个C程序很少挂起。程序在远程计算机上执行,启动调试器不是一个选项。运行外部探查器更现实,但也有巨大的困难。如果没有探查器或调试器,如何确定程序挂起点

在FS上详细记录选项并不合适。该程序由大约2万行代码组成,挂起的次数不多

我尝试过Process Explorer,但它的工作原理非常奇怪,或者我不理解它。如果您已经设法捕捉到线程进入无限循环的时刻,就有可能在那个时刻看到堆栈。但是这个线程很快就消失了,不管是在PE中,还是真的被环境杀死了


可以选择创建另一个应用程序application monitor。如果您能说出如何创建主进程的转储或获取有关主进程线程的信息,那就太好了。如果你有一些现成的工具,那就更好了。

所谓“挂起”是指程序在重新启动之前停止工作,还是说程序暂停了一段不同寻常的时间。如果是后者,它可能位于一个重GC集合中。如果是前者,并且您怀疑存在某种无限循环,那么在任务管理器或process explorer中,您应该会看到它几乎吞噬了一个处理器内核。例如,如果您有四个内核,并且一个程序挂起在一个紧密的循环中,那么您将在性能面板中看到大约25%的cpu使用率,假设机器负载较轻


MS支持托管调试,请参阅您可以使用sos扩展中断代码执行并查看程序的状态。如果采用这种方法,您可能希望程序pdb在手边。

所谓“挂起”是指程序在重新启动之前停止工作,还是指程序暂停了一段不寻常的时间。如果是后者,它可能位于一个重GC集合中。如果是前者,并且您怀疑存在某种无限循环,那么在任务管理器或process explorer中,您应该会看到它几乎吞噬了一个处理器内核。例如,如果您有四个内核,并且一个程序挂起在一个紧密的循环中,那么您将在性能面板中看到大约25%的cpu使用率,假设机器负载较轻


MS支持托管调试,请参阅您可以使用sos扩展中断代码执行并查看程序的状态。如果采用这种方法,您可能希望程序pdb方便使用。

当应用程序崩溃时,通常应将其记录到Windows的应用程序事件日志中。它不是非常详细,但无论如何都应该提供非常可靠的线索,而不需要任何外部工具

要到达那里,您可以在“开始”菜单中搜索事件日志,也可以在“控制面板”中找到它。它位于“管理工具”部分

进入事件查看器后,打开左侧的Windows日志项目,然后选择应用程序。您应该能够使用Source列在列表中找到您的应用程序

在底部,您可以找到错误详细信息、时间戳和更多信息,这些信息可以帮助您调试应用程序


从应用程序崩溃时拍摄的图片,通常应记录到Windows的应用程序事件日志中。它不是非常详细,但无论如何都应该提供非常可靠的线索,而不需要任何外部工具

要到达那里,您可以在“开始”菜单中搜索事件日志,也可以在“控制面板”中找到它。它位于“管理工具”部分

进入事件查看器后,打开左侧的Windows日志项目,然后选择应用程序。您应该能够使用Source列在列表中找到您的应用程序

在底部,您可以找到错误详细信息、时间戳和更多信息,这些信息可以帮助您调试应用程序


从应用程序事件日志查看器中的任何条目中拍摄的图片?可能是其他软件(如db dump)或计划服务造成的吗?@Pierre Luccinoult,非常感谢。我已经检查了standart Windows应用程序事件日志,并在其中找到了有关这些错误的条目。我知道挂起的精确时间,所以找出我的应用程序的错误并不是一个问题。欢迎您写一个答案让carmaTake看一看。@VasiliiDovedov很高兴我能提供帮助,并且您能够对应用程序进行故障排除!应用程序事件日志查看器中有任何条目吗?可能是其他软件(如db dump)或计划服务造成的吗?@Pierre Luccinoult,非常感谢。我已经检查了standart Windows应用程序事件日志,并在其中找到了有关这些错误的条目。我知道挂起的精确时间,所以找出我的应用程序的错误并不是一个问题。欢迎你写一封回信让卡马塔克看一看。@Vasilidovedov很高兴我能帮上忙,而且你能
ubleshoot你的应用程序!应用程序事件日志查看器中有任何条目吗?可能是其他软件(如db dump)或计划服务造成的吗?@Pierre Luccinoult,非常感谢。我已经检查了standart Windows应用程序事件日志,并在其中找到了有关这些错误的条目。我知道挂起的精确时间,所以找出我的应用程序的错误并不是一个问题。欢迎您写一个答案让carmaTake看一看。@VasiliiDovedov很高兴我能提供帮助,并且您能够对应用程序进行故障排除!