问题标签 [greenhills]
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.
debugging - MULTI 调试器关闭一个断点
有没有人见过 Multi 调试器的行号错误或断点被一个击中?
我有一个 MULTI 脚本 (scripty.rc),它通过一个依赖于在该程序结束时命中断点的过程。该程序在两个循环之一中完成:
所以我应该在 6649 或 6651 中断,为用户打印该行,并让他们验证一切是否正常。
但。
它并没有在 6651 处突破。至少并非总是如此。午餐前,当我确保一切正常时,我看到它就像我想要的那样击中它。午饭后,当我和硬件人员演示它时,它打印出来的行是6650 NOP
. 比如什么鬼?真的吗?我演示你的那一刻你就背叛了我?
我验证软件是相同的,它不是一些偷偷摸摸的提交。
我验证脚本是一样的。这不像是设置了不同的断点。
我用断点做数学。在脚本中bp _start#2135
是,_start
是的,在 4516。是的,经过深入分析,4516+2135=6651。
我看到它早些时候击中了正确的路线。
我很想把这归咎于我与 MULTI 的不健康关系。解决方法很简单,但非确定性调试器听起来很可怕,我想将它运行到地面。有没有人见过 Multi 调试器的行号错误或断点被一个击中?任何人都知道它可能是什么?我搞砸了一些简单的事情吗?
c - 将静态库添加到我现有的项目 - Greenhills 编译器
我的客户为我的项目提供了一个静态库(.a)。这个静态库的目标是将库中存在的功能集成到我的项目中。
我面临的问题是,当我尝试链接此文件时,我的链接器无法链接它并引发错误。
例如:考虑库中有一个定义为“void get_input()”的函数。当我尝试在我的 c 文件中调用此函数时,我的链接器会抛出符号未定义的错误。
我正在使用 Greenhills 编译器。
c++ - 完整性 RTOS \ 多编译器
在 Windows 中,我可以从命名空间外部看到我在命名空间中声明的任何变量,但是对于 Multi 编译器,它是如此严格,如果您在命名空间 X 中声明了某个变量,则只能在命名空间中访问该变量X,但我也想从命名空间之外访问这个变量。
是否有任何预处理器定义或任何方法可以使这成为可能。这对我来说是必须的,我不能删除命名空间。
任何形式的帮助表示赞赏。
c++ - MIPS 编译器 (C++98) 上的 Eigen 3.3.4 编译错误
我在 Multi-2000 (Green Hill) MIPS C++ 编译器下编译 Eigen 3.3.4。在我解决了 Macros.h 中的一些对齐宏问题后,我再次遇到了一些模板表达式的问题。查找错误详细信息,如下所示。我知道这对于我的旧 C++ 编译器来说应该是一些问题,但是任何可以提出解决它的人都将不胜感激。
所以问题必须在下面的表达式中。但我真的想不通。
更新 8/25 ->“typename enable_if”是否会导致这种情况?
greenhills - Greenhills 多软件图标未显示在 Window 10 的工具栏/Alt+Tab 中
Greenhills 多软件安装在 Windows 10 PC 中。启动软件后,我可以看到 IDE 的 GUI,但是一旦我最小化,除了任务管理器之外,我在工具栏或 Alt+Tab 的任何地方都找不到软件图标。
我已经搜索了软件中提供的所有选项,但找不到解决方案。
提供启用功能以在工具栏上显示 GHS 多图标的选项。
c++ - C++ 内存分配使用 Under Green Hills INTEGRITY
对不起,我是格林希尔的新手。我正在使用 MULTI 6.1.6,我选择的语言是 C++。
尝试使用模拟器使用 new 启动大于 1M 的类的对象时遇到问题。
如果 sizeOf(Class_Big) > 1MB 它根本不会调用类构造函数,返回 NULL 并转到下一条指令 (Class_Small* Small_obj;) 并正确创建下一个对象。如果我在 Class_Big 上找出一些变量以使其大小 < 1MB,则代码可以正常工作并创建对象。
我都加了
到我的 xml 文件。
我在构建阶段遇到的另一个错误如果我使用了一个大类:
你能帮忙吗?
谢谢
c++ - 默认构造的映射迭代器在增量时进入无限循环 - Green Hills 编译器
我必须从头到尾对 std::map 中的所有元素进行简单的迭代。在每个元素上,我必须执行一个操作。假设地图包含以下对:
执行迭代的代码如下:
现在令人惊讶的是,上面的代码适用于第一个元素(puppy
被馈送)但迭代器无法转到下一个元素。调试器显示++beast
永远不会返回(似乎它永远在其左叶上递归分支)。
似乎这里的问题beast
是从未分配给farm.begin()
它,因此它不能前进到下一个项目(参见 for 的第一个元素)。
所以这是我的问题:
映射迭代器的默认构造函数自动定位对象以指向
map.begin()
元素是否正常?如果这是常见的做法,那么为什么会返回一个有效的第一个元素(例如,它可能已被返回
map.end()
)?怎么可能
operator++
允许在无限循环中悄悄失败?返回错误代码(我们禁用异常)或以某种方式公开失败不是更好吗?
我想知道标准是否允许这种行为,或者它是一种实现选择。
假设:我没有使用 C++11,我使用的是禁用了执行支持的 Green Hills 编译器 v2016
编辑:
我试图理解为什么我得到一个有效值和一个安静的失败,因为在其他线程中人们建议将默认构造的迭代器分配给map.end()
. 标准是否对此提供指导?
c - 是否可以使用 GreenHills 使用不同于数字常量的东西进行预处理评估?
我正在尝试进行以下评估:在我的头文件中(定义值可以更改):
在我的功能中:
当我编译代码时,它会引发以下错误:
当我进行操作以查看 DEFINE 是否存在(或不存在)时,它工作正常(#ifdef 或 #if defined(X))。但我想要的是能够在编译时评估 X 的值。我是否缺少任何标志或我需要设置的东西才能使这项工作?我正在使用 Green Hills 编译器。
tizen - 像 Green Hill Software 的 INTEGRITY RTOS 这样的 RTOS 如何与汽车级 linux 集成?
我正在尝试了解汽车代码的堆栈——我知道 Linux/Android 可以位于它之上,所以我会假设 AGL,但我不确定 RTOS 作为平台提供的区别和框架。
第二点:AGL 最初基于的 Tizen 也是 Integrity 线中的 RTOS,还是仅仅是一个操作系统?Tizen 和 Integrity 有什么区别?他们只是竞争对手,还是堆栈中完全不同的层?
c - 是否可以禁用外部库的 MISRA 检查?
是否可以禁用外部库的 MISRA 检查?我已经尝试过了,但它似乎不起作用(此标头使用 C++ 样式注释和不兼容的 @ 标记)。
2018 年 10 月 4 日更新:最小示例
编译器输出:AFAIU 这些行与#pragmas 包含的包含相关