私は Ocaml で型を from に変換しint
ていint32
ます。String
Ocamlのライブラリのいくつかの機能を変更しました(以下のコード)
external length : string -> int32 = "%string_length"
external create: int32 -> string = "caml_create_string"
external unsafe_blit : string -> int32 -> string -> int32 -> int32 -> unit
= "caml_blit_string" "noalloc"
let sub s ofs len =
if ofs < 0l or len < 0l or add ofs len > length s
then invalid_arg "String.sub"
else begin
let r = create len in
unsafe_blit s ofs r 0l len;
r
end
int -> int32
コードを実行したときからコード内の多くの場所を変更したことに注意してください。エラーが発生しました。
./xsd2coq < grammar/cpf.xsd > coq/cpf.v
Segmentation fault (core dumped)
xsd2coq.ml
私がバッファを持っているファイルには次のものがあります:
let main () =
let xml = parse_xml stdin in
let xsds = Xsd_of_xml.xsd_of_xml xml in
let b = Buffer.create 10000 in
Coq_of_xsd.genr_ml b xsds;
Buffer.output_buffer stdout b;;
let _ = run main;;
セグメンテーション違反に関するエラーが発生する理由は何ですか? 私のコードをデバッグできるようにするためのヒントや提案を教えてください。ありがとうございました