This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Compiler/CCStudio:在/usr/lib/perl5/vendor_perl/vma/simple.pm的join或string中使用未初始化的值5.22

Guru**** 2188505 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/568430/compiler-ccstudio-use-of-uninitialized-value-in-join-or-string-at-usr-lib-perl5-vendor_perl-5-22-xml-simple-pm

部件号:CCStudio

工具/软件:TI C/C++编译器

我们使用ofd430.exe和global_types_gen.pl生成一个列表,列出程序中的所有结构和偏移。 我们正在使用MSP430F2618t。  它一直在工作,但我正在尝试使用 最新的CCS7和工具设置新的测试站。 我运行以下两行:

首次运行:

ofd430.exe -xg --xml_indent=0 --obj_display=none --dwarf_display=none,dinfo,类型XPG_MicsPAD.out

生成 XPG_MicsPAD.out.xml,然后运行:

global_types_gen.pl xPG_MicsPAD.out.xml

当我运行global_types_gen.pl脚本时,它会生成的2万 行

在/usr/lib/perl5/vendor_perl/vendor/perl/xml/simple.pm 5.22 第1284行的join或string中使用未初始化的值。
在/usr/lib/perl5/vendor_perl/vendor/perl/xml/simple.pm 5.22 第1290行的哈希元素中使用未初始化的值$key。

我正在将CCS升级到CCS7,CG_xml到版本2.50 ,perl是:

这是perl 5, version 22, subversion 2 (v 5.22 .2),专为cygwin-thread-multi-64int而设计。

perl simple.pm中抱怨的行是加入命令:

Join (',',@DefKeyAttr) eq join (',',@{$self->{opt}->{keyattr});

网络上提到这是对未定义变量的警告。 工具/脚本都是T1,因此我不确定如何修复/解决此问题以消除错误。 它的泛滥是测试/构建日志。

我似乎在任何网站或TI网站上都找不到此特定问题或解决方案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以重现该问题。  我不知道发生了什么。  我会继续研究。

    同时,考虑使用global_types_gen的二进制可执行形式。  它位于cG_xml安装的\bin目录中。  如果您以通常的Perl方式调用global_types_gen.pl,请运行此可执行文件。  这对我来说很有用。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    George,

    感谢您的快速回复。 我做了一个快速测试,似乎解决了问题。 我将在夜间开始一些测试 ,并在早上更新此线程的结果。

    我不知道有.exe版本。 看起来每个.pl脚本都有一个.exe版本。 我何时/为什么要在.exe上使用.pl脚本。 exe是否总是更快/更好?

    谢谢!

    卷曲

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,George,

    我昨晚进行了几次测试,都通过了。 是的,使用.exe确实解决了问题。 我愿意将此问题称为"已关闭/已修复"。 我想了解您对为什么在.exe上使用.pl脚本的回答。  

    谢谢!

    卷曲

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    何时/为什么我会在.exe上使用.pl脚本。 exe是否总是更快/更好?[/QUOT]

    这不是可执行文件的用途。  可执行文件的目的是为客户提供可以立即运行的功能,而无需安装任何其他组件。  如果您只能得到Perl脚本(.pl文件),那么您必须安装Perl,XML::Simple及其所需的一切,然后才能开始工作。  对那些熟悉Perl的人来说,这并不难。  但是对于不熟悉Perl的人来说,这可能是一个挑战。

    谢谢,此致,

    -George