[Haskell-beginners] scotty + ffi segfault

Miro Karpis miroslav.karpis at gmail.com
Fri Mar 14 21:21:52 UTC 2014


thanks, but also after changing my CString/newCString to
CWString/newCWString I'm getting the segfault. As I mentioned if I run
the setmodulestring
function from ghci everyting works fine (I get proper return value). The
problem only comes if I call setmodulestring from the main.

I have simplified the main here:
main = do
let param = "FilePath"
let value = "C:/dev/misc/haskell/services/FM"
result <- liftIO $ FM.setmodulestring param value
return "done"

Another strange thing is that I can call another external function from the
'main' function without problem.


On Fri, Mar 14, 2014 at 9:52 PM, Brandon Allbery <allbery.b at gmail.com>wrote:

> On Fri, Mar 14, 2014 at 4:46 PM, Miro Karpis <miroslav.karpis at gmail.com>wrote:
>
>> setmodulestring :: String -> String -> IO CInt
>> setmodulestring param value = do
>>  cParam <- newCString param
>> cValue <- newCString value
>> let cParamLength = fromIntegral $ length param ::CInt
>>     cValueLength = fromIntegral $ length value ::CInt
>>     setVarInArray = (-1)::CInt
>> result <- c_setmodulestring cParam cParamLength cValue cValueLength
>> setVarInArray
>>  return result
>>
>
> The path you show earlier looks like Windows; you probably want CWString
> for Win32 API functions (so newCWString etc.).
>
> --
> brandon s allbery kf8nh                               sine nomine
> associates
> allbery.b at gmail.com
> ballbery at sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140314/d375885a/attachment.html>


More information about the Beginners mailing list