Graças ao comentário do @ umläute, usei gdb
para depuração aprimorada.
Aqui está como eu backtraced ./target/bin/identify -list delegate
:
$ gdb ./target/bin/identify
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/src/imagemagick-static/target/bin/identify...done.
(gdb) run -list delegate
Isso gerou uma saída muito mais útil do que a strace:
Program received signal SIGSEGV, Segmentation fault.
0x000000000072eaa5 in gvFreeContext ()
Pesquisando gvFreeContext
permitiu que eu reduzisse ainda mais a depuração no Graphviz.
Michael Mrozek sugeriu então digitar
(gdb) bt
Isso dá o backtrace completo:
#0 0x000000000094ce21 in gvFreeContext ()
#1 0x000000000049fe4f in UnregisterDOTImage ()
#2 0x0000000000452e5c in UnregisterStaticModules ()
#3 0x0000000000423013 in MagickCoreTerminus ()
#4 0x000000000040cc38 in IdentifyMain ()
#5 0x000000000040cc64 in main ()
Ainda não solucionei meu segfault, mas gdb
backtraces parecem ser o caminho para depurá-los quando nem stderr nem dmesg
nem kern.log
contêm boas pistas.