首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法让IAR CSPY返回由执行的用户程序定义的错误代码?

有没有办法让IAR CSPY返回由执行的用户程序定义的错误代码?
EN

Stack Overflow用户
提问于 2016-09-16 21:20:06
回答 2查看 470关注 0票数 1

我正在使用IAR EWARM的cspybat为我使用Unity的嵌入式代码运行一些单元测试。我希望我的构建服务器有一种简单的方法来确定单元测试是通过了还是失败了。如果我的单元测试失败,有没有办法让CSPY返回一个非零的错误代码?我已经尝试更改main()中的返回值,但未做任何更改。有没有我可以调用的函数来强制返回错误?

我的cspybat批处理文件如下所示:

代码语言:javascript
复制
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\Work\Sandbox\ST\stmicroeval\_iar_ewarm_project\settings\Project.UnitTest.general.xcl" --backend -f "C:\Work\Sandbox\ST\stmicroeval\_iar_ewarm_project\settings\Project.UnitTest.driver.xcl" 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-04 17:21:08

很遗憾,我不会。

我已经解决了这个问题,将" exit“替换为一个打印特定模式的函数,以及退出代码。然后,我将对cspybat的调用封装到一个脚本中,该脚本1)剥离额外输出的输出,2)使用所需的退出代码退出。

票数 2
EN

Stack Overflow用户

发布于 2020-12-05 02:23:39

现在是2020年后期,他们仍然没有提供这样做的机制。

我们通过在内容中包含一个宏文件来解决这个问题:

代码语言:javascript
复制
execUserExit()
{
__message "program exited with __exit_value = ", __exit_value:%d ;
}

并且在代码中有我们自己的出口变量:

代码语言:javascript
复制
extern "C" int __exit_value=0xff;

这是我们在调用exit()之前设置的(尽管您可以只编写自己版本的exit())

这使得调试器总是打印一些东西,即使程序在启动时崩溃。

然后我们使用python包装器进行解析:

代码语言:javascript
复制
pattern =  "__exit_value =\s([\-|0-9|a-f|A-F|x]*)"
retvalue = int(re.findall(pattern,process.stdout)[0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39532551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档