小编Mar*_*ise的帖子

检测应用程序挂起

我有一个用C++编写的非常大,复杂(百万+ LOC)的Windows应用程序.我们每天收到一些应用程序已锁定的报告,必须强制关闭.

虽然我们有关于崩溃的广泛报告,但我想扩展它以包括这些挂起场景 - 即使有大量的日志记录,我们也无法找到其中一些的根本原因.我们可以清楚地看到活动停止的地方 - 但不是为什么停止,即使在评估所有线程的输出时也是如此.

问题是检测何时发生挂起.到目前为止,我能想到的最好的是一个看门狗线程(因为我们有证据表明后台线程继续运行w/out问题),它定期用自定义消息对主窗口进行ping操作,并确认它是在一个自定义消息中处理的.及时时尚.这只会捕获GUI线程挂起,但这似乎是大多数情况发生的地方.如果在可配置的时间范围内未收到回复,我们将捕获内存和堆栈转储,并为用户提供继续等待或重新启动应用程序的选项.

有没有人知道比这样定期轮询主窗口更好的方法呢?它似乎非常笨拙,但我还没有看到可以在我们的平台上运行的替代方案--Windows XP和Windows 2003 Server.我看到Vista有更好的工具,但不幸的是,这对我们没有帮助.

我只想说我们对此进行了广泛的诊断,并且只取得了有限的成功.请注意,实时附加windbg不是一种选择,因为我们在事件发生后数小时或数天才收到报告.我们将能够检索内存转储和日志文件,但仅此而已.

任何超出我上面计划的建议都将受到赞赏.

c++ windows

7
推荐指数
1
解决办法
4069
查看次数

rspec上的Ruby分段错误

这真的很奇怪.我在这个Rails 3.2.11应用程序中做得很好,之前运行了rspec这是我创建了一个新的分支,更改了一个文件,已经提交,并且当我遇到大量的Segmentation错误和堆栈跟踪时,运行了rspec spec /正如我所见.

我已经更新了rvm并尝试安装早期版本的ruby 1.9.3.我一直挂在原始宝石上,并通过重新启动来保护.重新启动OS X 10.8.3后,我能够干净地安装ruby 1.9.3-p429.但是rspec仍然保释.完整的堆栈跟踪是https://gist.github.com/sam452/5808849.因为它们被清理干净,所以我已经捆绑了宝石.我还尝试再次运行rspec生成器,但它似乎只覆盖了一个支持文件.铁路,耙子,黄瓜似乎运行正常.Rake在进入rspec命令时失败.

我试图从堆栈跟踪中提取看似相关的部分:

    Happenstance:tickat sam$ rspec spec/
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/better_errors-0.8.0/lib/better_errors/core_ext/exception.rb:9: [BUG] Segmentation fault
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin12.3.0]
Run Code Online (Sandbox Code Playgroud)

控制帧信息

c:0064 p:---- s:0204 b:0204 l:000203 d:000203 CFUNC  :callers
c:0063 p:0064 s:0201 b:0201 l:000290 d:0026c0 LAMBDA /Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/better_errors-0.8.0/lib/better_errors/core_ext/exception.rb:9
c:0062 p:---- s:0198 b:0198 l:000197 d:000197 FINISH
Run Code Online (Sandbox Code Playgroud)

Ruby级别回溯信息

/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files'
/Users/sam/.rvm/gems/ruby-1.9.3-p429/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load'
/Users/sam/apps/tickat/spec/controllers/admin/events_controller_spec.rb:1:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

C级回溯信息

   See Crash Report log file under ~/Library/Logs/CrashReporter …
Run Code Online (Sandbox Code Playgroud)

ruby rspec-rails ruby-on-rails-3

5
推荐指数
2
解决办法
4787
查看次数

标签 统计

c++ ×1

rspec-rails ×1

ruby ×1

ruby-on-rails-3 ×1

windows ×1