【问题标题】:Execution point for other threads in Delphi 2010Delphi 2010中其他线程的执行点
【发布时间】:2012-02-07 00:00:28
【问题描述】:

我正在使用 Delphi 2010(使用出色的 OmniThreadLibrary)开发一个多线程客户端应用程序,但由于我经常从一个线程切换到另一个线程,因此我很难进行调试。

我想知道是否有可能(使用任何工具或插件,我不在乎!)找到当前执行点,不仅针对当前线程,还针对所有其他线程。

一个简单的例子/报告:

Thread #1 stopped at line #5
Thread #2 stopped at line #25 (<-- breakpoint set here, causing Delphi to stop)
Thread #3 stopped at line #78

我的目标是“查看”当 Delphi 在某个断点处停止时其他线程在做什么,而不仅仅是使用日志(或不太有用的线程 12345 停止),而是像断点停止一样检查它们他们。

我希望我的问题足够清楚,请注意这里已经过了午夜,所以如果我的问题听起来很愚蠢,请不要怪我!

【问题讨论】:

    标签: multithreading delphi debugging omnithreadlibrary


    【解决方案1】:

    如果我对您的理解正确,您应该能够在断点 (Ctrl-Alt-T) 时调出线程窗口,然后只需双击任何线程即可查看它当前执行的位置。

    【讨论】:

    • 感谢您的提示!但这给我带来了带有 ASM 代码的 CPU 窗口,我想要查看与我的 pascal 代码对应的执行点(或至少最近的点)
    • 查看调用堆栈窗口。当您获得 CPU 窗口时,通常意味着线程正在 O/S 级别等待某个事件发出信号。
    • 是的,这就是我要找的!不是很容易找到,但至少现在我可以看到其他线程信息!我会赞成你的回答,但我仍然没有那 15 个声望点 :( 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多