Segmentation fault when launching frama-c-gui with OCaml 4.02.0
ID0001919: This issue was created automatically from Mantis Issue 1919. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0001919 | Frama-C | Graphical User Interface | public | 2014-09-03 | 2015-03-17 |
Reporter | dhekir | Assigned To | yakobowski | Resolution | fixed |
Priority | normal | Severity | crash | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C Neon-20140301 | Target Version | Frama-C Sodium | Fixed in Version | Frama-C Sodium |
Description :
I'm using OPAM 1.1.1 with OCaml 4.02.0.
I installed Frama-C using OPAM, along with its dependencies, and then tried running frama-c-gui. It segfaults. Using gdb I get the following backtrace:
Program received signal SIGSEGV, Segmentation fault. 0x0000000000beb6e6 in GValue_val ()
(gdb) back #0 0x0000000000beb6e6 in GValue_val () #1 0x0000000000bec4b4 in ml_g_signal_emit_by_name () #2 (closed) 0x0000000000a91016 in camlGtkSignal__fun_1460 () #3 (closed) 0x0000000000aaa16c in camlGtkData__set_bounds_1503 () #4 0x0000000000790d0e in camlWp__Gtk_form__spinner_1053 () at src/gui/gtk_form.ml:100 #5 0x00007fffedf7bda8 in camlWp__GuiPanel__wp_panel_2423 () at src/wp/GuiPanel.ml:259 #6 0x00000000007603c8 in camlSecurity_slicing__Design__fun_13880 () at src/gui/design.ml:810 #7 0x0000000000ba2fb1 in camlList__iter_1061 () at list.ml:73 #8 0x0000000000763592 in camlSecurity_slicing__Design__fun_13774 () at src/gui/design.ml:808 #9 0x0000000000764083 in camlSecurity_slicing__Design__fun_14157 () at src/gui/design.ml:1136 #10 0x0000000000bd940b in camlCamlinternalOO__iter_f_1269 () at camlinternalOO.ml:369 #11 0x0000000000bd947d in camlCamlinternalOO__run_initializers_opt_1277 () at camlinternalOO.ml:379 #12 (closed) 0x000000000076167a in camlSecurity_slicing__Design__fun_14455 () at src/gui/design.ml:1264 #13 (closed) 0x0000000000a3b8f9 in camlExtlib__try_finally_1226 () at src/lib/extlib.ml:277 #14 (closed) 0x000000000079403e in camlSecurity_slicing__Gtk_helper__fun_5386 () at src/gui/gtk_helper.ml:735 #15 (closed) 0x00000000007940a5 in camlSecurity_slicing__Gtk_helper__fun_5383 () at src/gui/gtk_helper.ml:727 #16 (moved) 0x0000000000765ee4 in camlSecurity_slicing__Design__fun_14460 () at src/gui/design.ml:1283 #17 (closed) 0x0000000000c22b76 in caml_start_program () #18 (closed) 0x00000037040492a6 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #19 (closed) 0x0000003704049628 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0 #20 (closed) 0x00000037040496dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #21 (closed) 0x0000000000be9eda in ml_g_main_iteration () #22 0x0000000000ab06a5 in camlGtkMain__default_main_1163 () #23 (closed) 0x0000000000a28d71 in camlCmdline__catch_toplevel_run_1181 () at src/kernel/cmdline.ml:214 #24 0x00000000006bdd85 in camlBoot__entry () at src/kernel/boot.ml:66 #25 0x00000000006b3f49 in caml_program () #26 (closed) 0x0000000000c22b76 in caml_start_program () #27 (closed) 0x0000000000000000 in ?? ()
It could be related to lablgtk. All dependencies were downloaded using OPAM (including lablgtk 2.16.0) and installed without issues.
First I tried using directly the version from OPAM, but due to the segfault error I then tried downloading the sources and compiling them myself.
When running configure, everything is ok except for "OcamlGraph 1.8.5 > 1.8.4 found: should be compatible, but no warranty. Use it at your own risk!", but I used the patch available in https://bts.frama-c.com/view.php?id=1764, and then I could run make and make install without issues. But once again, when running frama-c-gui it segfaults.
To sum up, either using OPAM or downloading and compiling the sources myself, I get the same result (unsurprisingly).
However, when switching to OCaml 4.01.0 and running "opam install frama-c", the GUI works normally.
Has the Frama-C GUI been confirmed to work with OCaml 4.02.0 already? Should I try manually compiling its dependencies to try and identify the cause of the error?