Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VS2008调试WEC7应用程序-当前不会命中断点。此函数当前未加载任何可执行代码 我必须将一个C++ Win32控制台应用程序移植到WEC7上。在修复了一些构建和链接错误之后,我能够创建一个在目标上运行的可执行文件。但我无法使用VisualStudio调试该应用程序,因为断点没有命中,尽管相应的行已被明确执行_C++_Debugging_Visual Studio 2008_Windows Ce_Windows Embedded Compact - Fatal编程技术网

VS2008调试WEC7应用程序-当前不会命中断点。此函数当前未加载任何可执行代码 我必须将一个C++ Win32控制台应用程序移植到WEC7上。在修复了一些构建和链接错误之后,我能够创建一个在目标上运行的可执行文件。但我无法使用VisualStudio调试该应用程序,因为断点没有命中,尽管相应的行已被明确执行

VS2008调试WEC7应用程序-当前不会命中断点。此函数当前未加载任何可执行代码 我必须将一个C++ Win32控制台应用程序移植到WEC7上。在修复了一些构建和链接错误之后,我能够创建一个在目标上运行的可执行文件。但我无法使用VisualStudio调试该应用程序,因为断点没有命中,尽管相应的行已被明确执行,c++,debugging,visual-studio-2008,windows-ce,windows-embedded-compact,C++,Debugging,Visual Studio 2008,Windows Ce,Windows Embedded Compact,为了进一步调查我的问题,我创建了两个新项目: Win32项目 Win32智能设备项目 两者都包括以下代码: #include "stdio.h" void main(void) { int i=0; while(1) { printf("i=%d\n",i); i++; } } 此时,我可以调试两个项目,一个运行在Windows7的笔记本上,另一个运行在WEC7的目标上。现在,我已将平台解决方案从项目1(Win32项目)更改为我的

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

  • Win32项目

  • Win32智能设备项目

  • 两者都包括以下代码:

    #include "stdio.h"
    void main(void)
    {
        int i=0;
        while(1)
        {
            printf("i=%d\n",i);
            i++;
        }
    }
    
    此时,我可以调试两个项目,一个运行在Windows7的笔记本上,另一个运行在WEC7的目标上。现在,我已将平台解决方案从项目1(Win32项目)更改为我的目标:

    • 已从Win32平台复制设置

    • 将调试信息格式从4设置为/Zi(不知道4来自何处)

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

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

    • 试图调试程序,但计数器和printf处的断点未命中

    我检查了以下设置:

    • 解决方案配置设置为调试

    • 已禁用优化

    • “生成调试信息”设置为“是”

    • 比较了项目1(我的“转换”版本)和项目2(Win32智能设备项目)之间链接器的命令行,但它们是相同的更新:实际上它们根本不相同。不知道我第一次比较了什么,但在我更新了设置后,效果很好。

    我已安装以下Visual Studio更新:

    • SP1

    • 针对Visual Studio 2008 SP1()的Windows Embedded Compact 7 ATL更新

    • 针对Windows Embedded Compact 7的Visual Studio 2008更新 ()

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


    我主要做过基于模型的软件设计(Mathworks Embedded Coder、dSPACE Targetlink),因此我不熟悉Visual Studio和WEC7的特定特性。非常感谢您的帮助。

    VS2008有几个更新,可以在Windows Embedded Compact 7上进行调试。你安装了吗

    例如有
    这解决了我的问题:

  • 我为WCE平台创建了一个新项目(使用模板),并检查调试是否有效
  • 然后,我通过比较项目属性中编译器和链接器的“Commmand Line”来检查实际项目中应该使用哪些选项
  • 有几个不同之处,在我清理它们之后,我的项目工作得很好


    Thx@brightstar

    “在一些构建和链接错误之后,我能够创建一个可执行文件…”这听起来不太对劲。如果您遇到构建和链接错误,则不会生成可执行文件。你的意思是你修复了错误吗?无论如何,如果你有一个无止境的循环,并且断点在该循环之外,那么断点将永远不会被击中。这应该是显而易见的,因为循环永远不会终止!那里的代码也从未运行过。中断的不仅仅是断点。你们到底想完成什么?我会为WCE平台创建一个新的项目(使用模板),并检查调试是否有效。然后检查在实际项目中应该使用哪些选项。最简单的方法是查看项目属性中编译器和链接器的“Commmand行”。可能是pdb文件的路径有问题?@CodyGray抱歉我的英语不好,我的意思当然是“.在我修复了一些..”之后。此外,计数器和printf在循环中,代码正在执行,但不会命中断点。@marcin_j我为WCE创建了一个新项目,调试工作正常,但编译器和链接器的“命令行”与“已转换”命令行相同它提供了一个问题的答案,指出了特定系统(Windows Embedded Compact 7)上的特定调试器(VS2008)存在一个已知的错误,该错误被称为错误(未命中断点),甚至提供了一个下载链接。那你为什么要删除它呢?我没有足够的声誉将其作为主帖子下的推荐发布。@Fabian我已经安装了您链接的此特定更新,但我找不到与我的问题相关的任何其他更新。@ChristianRießland您是舒尔吗,您运行的是正确的exe?如果两个程序集的名称相同,则可能会执行错误的程序集,执行正确的输出,但不会命中断点。答案中对已知错误的说明是什么?它只是说“哦,有一些更新;这里有一个链接”。不仅是链接的答案强烈劝阻,这个答案并没有回答这个问题。它只提供了一个可能的答案。可能是有用的建议,但不是答案。这些应该作为评论发布。@CodyGray Ok。那么告诉我,当你试图发布一个潜在的安塞或可能的有益的建议,但却被允许在stackoverflow发布新的评论时,协议是什么?