问题标签 [eurekalog]
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.
multithreading - 在没有与 Eurekalog 对话的情况下在线程内正确记录
我有一个使用最新版本的 EurekaLog 的 Delphi 10 项目。我目前正在使用 EurekaLog 来帮助我调试生产客户端中的问题。
我注意到 EurekaLog 没有记录线程内发生的错误。在我开始阅读它之后,我发现我需要从 更改TThread
为,并在我的覆盖方法TThreadEx
的开头添加以下代码。Execute
尽管如此,当发生错误时,它不会在EL
文件中生成事件。
如果我添加ExceptionManager.StandardEurekaError('TThrdSincArquivos.Execute => ' + ex.Message);
,try..except
它会记录。但是堆栈跟踪显示为好像错误发生在我调用的行上StandardEurekaLog()
,而不是实际发生错误的行上。这违背了整个事情的目的。
另一个问题是它显示了一个我不想要的对话框,因为错误发生在后台线程中。我只想记录它。我应该只在主线程上有错误时得到一个对话框。
如何在线程中实现这些结果?
实际上用正确的堆栈记录错误。
在主线程上时,显示对话框,但在线程内,只记录没有对话框。
编辑
下面是我的 EurekaLog 多线程配置
这是我的线程声明:
我的线程的创建
我的执行开始
和 Execute 的结束
它拒绝将任何异常记录到 Elf 文件中。我试图在我自己的日志例程之后添加一个加薪,但它仍然没有帮助。它应该记录,但不是,除非我明确调用StandardEurekaError
,但我得到了错误的堆栈,我得到了对话框。
delphi - 如何使用 EurekaLog 获取已处理异常的调用堆栈
我正在使用 Delphi 7 和 EurekaLog 7(在兼容模式下)并且只想获取已处理异常的调用堆栈,例如
这是一个多线程应用程序,所以如果可能的话,我想看看调用线程的调用堆栈。另外,既然这是一个已处理的异常,我还需要使用 EurekaLog 的OnExceptionRaise
事件吗?(我不想)。
编辑: CrossThreadFunc() 被多次调用并带有一些参数,而我需要知道的正是我调用它的位置,最终导致 SomeCode() 引发异常。
delphi - 将一段 Delphi 代码转换为 C++Builder
我正在使用 Delphi/C++Builder 的 EurekaLog 错误捕获器。他们所有的例子都在 Delphi 中,我正在使用 C++Builder。下面的 Delphi 代码是导致软件异常的示例之一。我试图将其转换为下面的 C++,但我的代码是错误的。你能告诉我正确的 C++ 代码来完成这项工作吗?
来自 EurekaLog 的 Delphi 代码
我的 C++Builder 代码不起作用
delphi - Delphi EurekaLog 和 OmniThreadLibrary 不兼容?
我有一个简单的程序,它在一个单元的“初始化”中创建一个 OmniThread 工作池,并在该单元的“最终化”中销毁同一个池。只要我们不使用 EurekaLog,它就可以正常工作。如果我们包含 EurekaLog,则会在应用程序完成期间(关闭应用程序后)引发访问冲突。这种情况每 3 到 10 次程序结束才会发生一次;所以这似乎是某种时间问题。
如果我们在“正常”应用程序流程中创建工作池(而不是在单独单元的初始化和最终确定中) ,似乎一切正常。
本单元代码如下:
主要应用也很简单:
访问冲突的调用堆栈是:
我使用 OTL 和 EurekaLog 版本 7.9.1.4 update 1 hot-fix 4 的最新 master checkout。
我们创建和销毁工作池的方式是否正确?如果是这样,如果它们一起使用,是否有人熟悉 OTL/EurekaLog 中的问题?