我有一个十六进制格式的大数字(带小数点)String
,我希望将它转换为BigDecimal.
示例值: 0xcc.ccdp+1600
在BigDecimal
类中,我没有看到任何以十六进制格式表示数字的字符串作为输入并返回相应的函数BigDecimal.
有没有办法将大十六进制数转换String
为BigDecimal?
我正在尝试创建一个frama-c插件.这个插件取决于Frama-c Value插件.我想获取并打印C源代码中所有左值的值集.为了做到这一点,我想使用Value.Eval_exprs,Value.Eval_op等中可用的函数Eval_exprs.lval_to_precise_loc
.
不幸的是我无法找到在我的插件中使用这些功能的方法.我尝试按照Frama-c插件开发指南的4.10.1节(通过.mli文件注册)中提到的步骤添加PLUGIN_DEPENDENCIES:=Value
到我的Makefile中,但我注意到该Value.mli
文件为空,并且没有通过此文件公开任何功能.之后我查看db.ml
了kernel
目录中的文件,找不到任何可用于访问Eval_exprs,Eval_op等中可用功能的模块.
有没有办法从其他插件访问Value插件的这些功能?
我使用这里提供的说明安装了frama-c Magnesium版本.frama-c -version
在Cygwin打印的Frama-c版本的安装和执行命令期间,我没有收到任何错误:Magnesium-20151002
.但是当我-wp
在一个非常小的例子上执行插件时,对于使用的目标alt-ergo
,我得到以下错误:
1 [main] frama-c 8168 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Users.cmxs, Win32 error 998
1 [main] frama-c 7956 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Value.cmxs, Win32 error 998
0 [main] frama-c 300 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Value.cmxs, Win32 error 998 [wp] [Alt-Ergo] Goal typed_changeCase_assert_rte_signed_overflow_2 : Failed
Error: Resource temporarily unavailable
值插件执行成功.我搜索了错误并找到了这篇文章.所以我也执行了rebaseall -v
命令,但这也没有帮助.为了确认我的Cygwin没有损坏我再次安装了Frama-c Sodium版本并且能够成功执行WP插件.
任何人都可以帮我解决这个问题,我们希望能够在Windows上使用Frama-c Magnesium版本吗?
编辑:机器详细信息:我在计算机上和VM上都尝试过.在VM上,我执行了命令./configure && make and make install
来安装frama-c Magnesium.
我在两台机器上都有32位Cygwin.两个Windows都是64位.
我试图找出是否有任何可用的静态分析工具可以对 LLVM IR 执行分析并向开发人员报告问题?
任何建议表示赞赏。
我试图找到是否可以在Perl测试文件中只运行一个测试用例.例如,请考虑以下Perl测试文件(从http://www.thegeekstuff.com/2013/02/perl-test-simple/复制):
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple tests => 2;
sub hello_world
{
return "Hello world!";
}
sub get_number
{
return int(rand(1000));
}
ok( hello_world( ) eq "Hello world!", "My Testcase 1" );
ok( get_number( ) > 0, "My Testcase 2" );
Run Code Online (Sandbox Code Playgroud)
当我使用命令运行此文件时,prove -v test.t
我得到以下输出:
test.t ..
1..2
ok 1 - My Testcase 1
ok 2 - My Testcase 2
ok
Run Code Online (Sandbox Code Playgroud)
现在,我只想运行第二个测试用例即My Testcase2
.有没有办法在测试文件中只执行一个命名的测试用例?