Real quick look: pasting that in gdb on linux says at least the last parameter is wrong -- it is expecting a pointer there (to store the bytes written?)
On Wed, Jun 3, 2015 at 4:51 AM, Daniel Høegh <[email protected]> wrote: > Hi I hope someone could help me to understand why my code errors. I am > trying to wrap this http://pcre.org/current/doc/html/pcre2_substitute.html > function from the pcre2 library. I am working on latest master as it comes > with pcre2. My wrap look like: > > function my_replace(s::AbstractString, pat::Regex, rep_in) > offset=0 > subject = bytestring(s) > rep = bytestring(rep_in) > buffer = Array(UInt8, 256) > re = pat.regex > rc = ccall((:pcre2_substitute_8, Base.PCRE.PCRE_LIB), Cint, > (Ptr{Void}, Ptr{UInt8}, Csize_t, Csize_t, Cuint, Ptr{Void}, > Ptr{Void}, Ptr{UInt8}, Csize_t, Ptr{UInt8}, Csize_t), > re, subject, sizeof(subject), offset, pat.match_options, > pat.match_data, > Base.PCRE.MATCH_CONTEXT, rep, sizeof(rep), buffer, > sizeof(buffer)) > > bytestring(pointer(buffer)) > end > > julia> my_replace("ads10as", r"a(\d+)", "\$1") > > Please submit a bug report with steps to reproduce this fault, and any > error messages that follow (in their entirety). Tha > Exception: EXCEPTION_ACCESS_VIOLATION at 0x65811787 -- pcre2_substitute_8 > at (unknown line) > pcre2_substitute_8 at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libpcre2-8.DLL (unknown line) > my_replace at none:7 > jl_apply_generic at C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll > (unknown line) > jl_interpret_toplevel_expr at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll (unknown line) > jl_interpret_toplevel_thunk_with at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll (unknown line) > jl_eval_with_compiler_p at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll (unknown line) > jl_toplevel_eval_in at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll (unknown line) > eval_user_input at REPL.jl:62 > jlcall_eval_user_input_1356 at (unknown line) > jl_apply_generic at C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll > (unknown line) > anonymous at task.jl:91 > jl_unprotect_stack at > C:\Users\Hoegh\Julia-0.4.0-dev-03-06\bin\libjulia.dll (unknown line) >
