VS2008调试WEC7应用程序-断点目前不会被击中.此函数当前没有加载可执行代码

VS2008 Debug WEC7 Application - Breakpoint will not currently be hit. No executable code is currently loaded at this function

本文关键字:函数 代码 可执行 加载 应用程序 WEC7 调试 断点 目前 VS2008      更新时间:2023-10-16

我必须将c++ Win32控制台应用程序移植到WEC7。在我修复了一些构建和链接错误之后,我能够创建一个在目标上运行的可执行文件。但是我不能用Visual Studio调试这个应用程序,因为没有碰到断点,尽管相应的行肯定被执行了。

为了进一步研究我的问题,我创建了两个新项目:

    Win32项目
  1. Win32智能设备项目

都包含以下代码:

#include "stdio.h"
void main(void)
{
    int i=0;
    while(1)
    {
        printf("i=%dn",i);
        i++;
    }
}
在这一点上,我可以调试两个项目,一个在我的笔记本上运行Windows 7,另一个在我的目标上运行WEC7。现在我已经将平台解决方案从项目1 (Win32项目)更改为我的目标:
  • 从Win32平台复制设置

  • 设置Debug信息格式从4到/Zi(不知道4是从哪里来的)

  • 添加了一些WEC7预处理器定义

  • 将程序部署到目标并且工作正常(计数器在控制台中打印),与项目2

  • 没有区别
  • 尝试调试程序,但是计数器和printf的断点没有命中

我检查了以下设置:

  • 解决方案配置设置为Debug

  • 优化被禁用

  • 生成调试信息设置为Yes

  • 比较了项目1(我的"转换"版本)和项目2 (Win32智能设备项目)之间的链接器的命令行,但它们是相同的->更新:实际上它们根本不相同。

  • 不知道我第一次比较了什么,但是在我更新设置后它工作得很好。

我已经安装了以下的Visual Studio更新:

    SP1
  • Windows Embedded Compact 7 ATL Update for Visual Studio 2008 SP1 (http://support.microsoft.com/kb/2483802/de)

  • Windows Embedded Compact 7的Visual Studio 2008更新(http://support.microsoft.com/kb/2483802/de)

我需要更改特定设置吗?还是我需要改变我的方法?

我主要做基于模型的软件设计(Mathworks Embedded Coder, dSPACE Targetlink),所以我不熟悉Visual Studio和WEC7的具体特点。我将非常感谢您的帮助。

这解决了我的问题:

  1. 我为WCE平台创建了一个新项目(使用模板),并检查调试是否有效。
  2. 然后我通过比较项目属性中的编译器和链接器的"命令行"来检查应该在实际项目中使用哪些选项。

有几个不同之处,在我清理它们之后,我的项目工作得很好。

Thx @brightstar

VS2008有几个更新,使其在Windows Embedded Compact 7上调试。你安装了吗?

例如有http://www.microsoft.com/en-us/download/details.aspx?id=11935