Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.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
C Haskell Z3 api的分段错误_C_Haskell_Segmentation Fault_Z3 - Fatal编程技术网

C Haskell Z3 api的分段错误

C Haskell Z3 api的分段错误,c,haskell,segmentation-fault,z3,C,Haskell,Segmentation Fault,Z3,我将Haskell与这个Z3包一起使用,它紧密地反映(并通过Haskell的外部函数接口使用)C api: 我遇到了一个分段错误,并设法将其减少到以下情况: mainx = do print =<< intCheck [0..70] intCheck :: [Int] -> IO [Int] intCheck [] = return [] intCheck (x:xs) = do checking <- evalZ3 $ checkIm

我将Haskell与这个Z3包一起使用,它紧密地反映(并通过Haskell的外部函数接口使用)C api:

我遇到了一个分段错误,并设法将其减少到以下情况:

mainx = do
    print =<< intCheck [0..70]

intCheck :: [Int] -> IO [Int]
intCheck [] = return []
intCheck (x:xs) = 
    do
        checking <- evalZ3 $ checkImpact x
        print checking
        return =<< intCheck xs

checkImpact :: Int -> Z3 Result
checkImpact r  = do
    reset

    xSymb <- mkStringSymbol "x"
    x <- mkConst xSymb  =<< mkIntSort
    trace ("asserting = " ++ show r) assert =<< mkEq x x

    solverCheck
通常,最后一个断言大约在46个左右,但在不同的执行过程中确实有所不同。我最好的猜测是内存没有被正确释放(我不知道为什么它会在稍有不同的点停止),但我不确定这是我的递归(在intCheck中)还是Z3API的问题


提前感谢您的帮助

我看到您粘贴的代码中有一个空格问题(do的对齐)。请确保这是导致问题的代码

我无法复制您的问题:

% ghc so.hs -fforce-recomp && ./so 2>&1 | tail ; ghc --version ; z3 -version
[1 of 1] Compiling Main             ( so.hs, so.o )
Linking so ...
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
[]
The Glorious Glasgow Haskell Compilation System, version 7.10.3
Z3 version 4.4.1
哦,还有:

% ghc-pkg list z3
   z3-4.1.0
编辑:匹配GHC和Z3版本,但我仍然无法再现该问题:

% LD_LIBRARY_PATH=$HOME/lib ghc so.hs -fforce-recomp && LD_LIBRARY_PATH=$HOME/lib ./so 2>&1 | tail ; ghc --version ; z3 -version
[1 of 1] Compiling Main             ( so.hs, so.o )
Linking so ...
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
[]
The Glorious Glasgow Haskell Compilation System, version 8.0.1
Z3 version 4.3.2

我看到您粘贴的代码中有一个间距问题(do的对齐)。请确保这是导致问题的代码

我无法复制您的问题:

% ghc so.hs -fforce-recomp && ./so 2>&1 | tail ; ghc --version ; z3 -version
[1 of 1] Compiling Main             ( so.hs, so.o )
Linking so ...
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
[]
The Glorious Glasgow Haskell Compilation System, version 7.10.3
Z3 version 4.4.1
哦,还有:

% ghc-pkg list z3
   z3-4.1.0
编辑:匹配GHC和Z3版本,但我仍然无法再现该问题:

% LD_LIBRARY_PATH=$HOME/lib ghc so.hs -fforce-recomp && LD_LIBRARY_PATH=$HOME/lib ./so 2>&1 | tail ; ghc --version ; z3 -version
[1 of 1] Compiling Main             ( so.hs, so.o )
Linking so ...
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
Sat
[]
The Glorious Glasgow Haskell Compilation System, version 8.0.1
Z3 version 4.3.2

我会在haskell软件包中打开一个bug报告,如果有问题,让他们处理上游问题我已经这样做了:如果iago在那里回复,而不是在这里回复,我会发布更新。我会在haskell软件包中打开一个bug报告,如果有问题,让他们处理上游问题我已经这样做了:如果iago在那里回复,而不是在这里回复,我会发布一个更新。对于这个错误我很抱歉-在复制和粘贴到SO之后我不得不重新删除所有内容,并且弄乱了那个部分(现在已经修复了)。我们有不同版本的ghc(我在8.0.1上)和z3(我在4.4.2上)。但z3 haskell包的版本是相同的。您是否使用0到70(或其他更大的数字)运行它,并减少了输出?当我只使用[0..9]时,我没有得到段错误。我使用0..70运行,只是你的代码,缩进已修复。好的,谢谢你查看它。我倾向于怀疑它是否与ghc有关,但我会看看是否能用7.10.3试一试,以防万一。@Bill我已经用ghc 8.0.1和Z3 4.3.2试过(提交
79326e24dfb9dff723d1ce64b3f50bcf394bd48c
)。我无法复制您的问题。谢谢您提供的信息。我将尝试重新安装,看看会发生什么…对于这个错误,我感到抱歉-在复制和粘贴到SO之后,我不得不重新删除所有内容,并且弄乱了该部分(现在已经修复)。我们有不同版本的ghc(我在8.0.1上)和z3(我在4.4.2上)。尽管z3 haskell包的版本相同。您是否使用0到70(或其他更大的数字)运行它,并减少了输出?当我只使用[0..9]时,我没有得到段错误。我使用0..70运行,只是你的代码,缩进已修复。好的,谢谢你查看它。我倾向于怀疑它是否与ghc有关,但我会看看是否能用7.10.3试一试,以防万一。@Bill我已经用ghc 8.0.1和Z3 4.3.2试过(提交
79326e24dfb9dff723d1ce64b3f50bcf394bd48c
)。我无法复制您的问题。谢谢您提供的信息。我将尝试重新安装,看看会发生什么。。。