【问题标题】:Windows CE 6 remote debugging. No call stack when pause programWindows CE 6 远程调试。暂停程序时没有调用堆栈
【发布时间】:2012-02-07 01:57:28
【问题描述】:

我正在使用 Visual Studio 2008 与 WindowsCE 6.0 进行远程调试会话。

当我点击“暂停”时,我看不到程序调用堆栈。

我只看到一个地址,而不是带有我程序的任何函数的调用堆栈。

我正在使用the debug technique described here(或in German here

【问题讨论】:

    标签: c visual-studio-2008 mfc windows-ce remote-debugging


    【解决方案1】:

    您的“暂停”可能在系统调用的某个地方停止了应用程序,因此没有“代码行”可以显示。在您的代码中设置一个实际的断点并运行到该断点。然后,您将获得一个调用堆栈和调试环境的所有其他细节。

    【讨论】:

    • 感谢您的回答。我实际上是在寻找调用堆栈,不一定是源代码。我想知道我的应用程序当前在哪个 API 调用中。问题是应用程序在两周后“停止”运行,我想知道它是否卡在 API 调用中。有什么建议吗?
    • 添加日志记录。说真的,这就是你在这一点上所做的。连接 KITL 可能还会向您显示您在系统调用中的位置,但这假设您至少在一定程度上知道它在哪里,以便您可以输入正确的调试符号。您不想要一个完整的调试操作系统,因为这会导致信息过载。
    • 感谢您的回答。当我单击停止时,我想知道我的应用程序在哪个 API 调用中。还有其他建议吗?我只想知道应用程序当前是否处于 TCP 连接接收或睡眠或类似的状态。
    • 所以当你进入和离开这些电话时添加日志记录。
    • 或者使用调试版本的网络堆栈和 coredll 构建一个新版本的操作系统,这样你就有了 PDB。
    【解决方案2】:

    CE 编译器不支持调试功能。不幸的是,您可以在运行时和使用消息框进行调试。

    【讨论】:

    • 你有什么资源可以让我阅读更多信息吗?实际上它通常支持调试,但是当我单击停止时似乎存在问题......我看不到调用堆栈,而只是一个地址。
    • 从什么时候开始的? CE 至少从 2.12 天(我开始操作系统工作时)开始就支持调试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多