问题标签 [madexcept]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1126 浏览

delphi - MadExcept + try/finally 阻塞?

我有一些德尔福代码,有点像这样:

在这种情况下,除了打破 try 块之外,不需要处理的异常。因此,在将 mad-except 添加到项目以进行错误故障排除之前,此代码是“工作”的。但是现在我收到了错误报告,因为 MadExcept 正在报告未捕获的异常。

相关问题,MadExcept 在 try 上触发最终表明 MadExcept 在这种情况下中断的行为是“预期的”,因为该异常没有“处理”。

我想澄清一下我的选项是什么,以防止在此代码运行时弹出疯狂的异常对话框,无论是否有内部异常被抛出和忽略。

所以我认为没有开关来禁用 MadExcept 以阻止在 try/finally 块中的未处理异常是正确的?即使我想忽略它,我也需要明确地“捕捉”异常?

我应该做这样的事情(忽略任何例外):

或者也许(忽略一个非常具体的例外):

或者可能需要:

如果所有这三个都是有效的解决方案,我是否应该出于任何原因更喜欢其中一个?

0 投票
2 回答
274 浏览

delphi - Delphi XE6 样式菜单和 madExcept 问题

我遇到了 Delphi VCL Styles 的一个非常奇怪的行为。启用 VCL 样式后,当 madExcept 激活“缓冲区溢出时立即崩溃”选项时,菜单将变为非样式。

关闭此选项,或将其切换为“在缓冲区 UNDERrun 时立即崩溃”可修复菜单问题。

问题是:有没有其他人遇到过这个问题?为什么会发生以及如何解决?

0 投票
2 回答
119 浏览

c++ - 在运行时识别未释放的内存

如何最好地识别在运行时未正确释放的内存?我知道有几个程序可以在应用程序关闭时识别已分配和未释放(泄漏)的内存。但我的问题似乎是在程序执行期间(可能是一个线程)创建了一些未释放的对象,尽管它们应该在系统完成“工作”之后。

保持系统运行会随着时间的推移而积累。但是当程序关闭时,内存似乎被正确释放,因此从未报告为我目前使用的 MadExcept 中的泄漏。

我如何最好地检测每次运行“工作”时分配此内存的内容,并且在程序终止之前不释放它?这是在一个相当大的服务器系统中,大约有 100 万行代码、几个 DLL 子项目和运行的多个线程 (40-50)。

也许有一些系统可以识别已分配的对象,这些对象的存活时间超过 X 分钟。假设选择了 60 分钟并且系统继续运行。那么这些信息可以用来定位这些长寿物体并进行调查吗?

0 投票
2 回答
757 浏览

delphi - madExcept 所需的编译器指令

我使用 madExcept(不是来自 IDE),而是在自动批处理中。

我应该打开哪些编译器指令以获得堆栈跟踪和行号。我不关心加载的模块、进程或 CPU 寄存器。

我目前运行:

但想尽可能多地删除“胖”,但保留行号。

0 投票
2 回答
489 浏览

delphi - 有没有办法找出 TCustomForm 引用所指的表单?

我已向问题中引用的应用程序添加了 madExcept 支持。当程序挂起时,我从 madTraceProcess 得到以下报告:

它看起来(在我没有经验的眼中)就像程序挂在 OnDestroy 事件处理程序中,但不清楚是哪种形式导致了麻烦。有没有办法确定哪种形式停止了?

0 投票
2 回答
372 浏览

delphi - Delphi XE8 应用程序处理和第 3 方异常处理工具

我已经在delphi中维护了一个我不知道的项目:)。它从 D5 转换为 XE8。所以它有很多自定义的东西(我用字典替换了一些自定义对象列表,因为 D5 中不存在字典)。主应用程序正在扩展 TForm 并且在 FormCreate 方法中包含这一行

FormException方法接受异常并打印带有一些信息和调用堆栈的详细窗口。

我想在我的项目中集成 EurekaLog 或 madExcept,以便能够找到有关未处理异常的更多信息。但是,尽管安装并启用了我没有得到我想要的信息的窗口。它运行 FromException 方法,尽管我读到当与 madExcept 链接时,它会被忽略。创建一个新项目只需在 madExcept 或 EurekaLog 激活的情况下单击按钮引发异常即可正常工作。我不知道在哪里寻找delphi的异常处理,以及是否需要对3rd 方工具进行更多设置。有任何想法吗?

0 投票
1 回答
290 浏览

delphi - 修改 MadExcept 生成的 Bug 报告消息

MadExcept 生成的错误报告显示计算机名称和其他此类详细信息,这是一个安全问题。如何修改消息并从中删除此类值。

0 投票
0 回答
170 浏览

delphi - 解析发送到数据快照服务器的 MadExcept 错误报告的最佳方法是什么?

我将datasnap rest 服务器配置为madexcept 的自定义脚本上传位置。

一切正常,直到我尝试解析报告中设置的变量。他们被添加了

我认识到报告是作为multipart/form-data 发送的,因此我尝试将Web.ReqMulti包含到我的单元中以使用TMultipartContentParser解析 它在 REST 方法中看起来像这样

此时,LAppName为空,因为LReq.ContentFields.Count为 0

解析此错误报告的推荐方法是什么?

更新_1:

似乎 TMultipartContentParser 似乎正确解析了所有文件(application/octet-stream),但未解析明文。

0 投票
1 回答
498 浏览

delphi - 如何在 Delphi 中调试 CEF3 / libcef.dll 并收集有关 c0000005 / 001dea9b 异常的信息

我知道我的问题是多维的,我可能会得到一些独立的建议,但非常感谢你所做的一切,如果这是一个新手问题,我很抱歉。

我在 Delphi RAD 10 中使用 CEF (TChromium) 浏览器。我经常在客户的生产中收到一个错误,在调试器上工作时我无法复制。显示基本Win错误信息后,系统(Win7)杀死程序,以未保存的先前工作结束。我一步步检查了代码的每个元素,请程序员同行分析,似乎这个错误只适用于CEF浏览器。每次,无论我在程序的工作中能注意到什么,错误都是一样的:

是的,我猜这个问题可能是由很多不同的东西引起的,但我假设因为这只发生在使用浏览器时(否则程序可以完美运行),并且每次显示相同的问题时,它可能是 TChromium组件

不幸的是,我无法理解究竟是什么导致了这个问题(libcef.dll c0000005 / 001dea9b exeption),并且在各种论坛上找到的所有线程都被终止和/或未解决。

我尝试通过显示更大的消息而不是关闭程序来对每个页面加载进行编程:

但是在调试器上工作时(再次)我没有收到任何错误,并且在生产系统上只是杀死了应用程序而没有任何错误消息。

乍一看,我想我需要一个解释

  • TChromium 组件实际上只有在我用“加载(url)”调用它时才会改变,所以我是否正确理解代码中的这个位置是我应该关注的地方?
  • 我可以这样编程外部库的错误/异常吗?或者也许有其他方法可以安全地使用它们,这样错误就不会成为杀死应用程序的原因,而是会在生产上得到控制?
  • 上面提到的调用 TChromium 组件的过程是否会给我比杀死我的应用程序的系统更多的信息?(当然,如果这是错误的地方,因为这似乎是最稳妥的一击)
  • 我使用 EurekaLog7 工具 - 但我不明白我应该如何使用它来跟踪浏览器库错误跟踪以及在哪里调用它,甚至如何在代码中使用它。实际上,我完全不知道从哪里开始在外部库上使用它,我很乐意接受一些文档或关于阅读内容以及在哪里可以找到可以理解的示例的提示。

提前感谢您,如果这太容易或问题很愚蠢,我深表歉意。当然,我也知道,由于我没有提供完整的代码,所以分析问题会很困难,但是我想自己学习这种错误分析,所以也许你会原谅我。:)

~~补充资料

  • 程序得到x32结构,在win 7 xs64下运行;
  • 程序是一个简单的爬虫,其任务是将搜索页面的选定元素保存到文本文件形式;
  • 可选:对我来说已经足够了,如果这个错误成功触发了我自己的关闭程序,允许简单地保存结果,应用程序可以在之后被杀死,因为调度程序会复活它;
0 投票
0 回答
72 浏览

email - 在 MS 建议下从 MAPI 更改为 OAUTH 后,MadExcept 无法再邮寄我们的错误

是否可以让 MadExcept 使用新的 MS Office365 邮件服务器发送邮件?MAPI 不再是一种选择。