Je vous écris un plugin pour audacieux, et je fais l'expérience segfaults au hasard. J'ai regardé autour et j'ai constaté que je peux traiter les vidages de base du programme avec gdb.Comment puis-je ajouter des symboles de débogage à Audacious?
Je l'ai fait, et je suis arrivé cette sortie:
Comme vous pouvez le voir, il dit pas de symboles de débogage où trouve nulle part. Je veux compiler audacieux avec des symboles de débogage, mais je ne sais pas comment. J'ai essayé configurer d'édition, qui ne comprend qu'un fichier nommé buildsys.mk, donc j'edited que et enlevé le drapeau -s de l'éditeur de liens, et fait en sorte que le drapeau -g est transmis au compilateur. La sortie gdb ci-dessus est après que je l'ai fait, donc apparemment ce que j'ai fait n'a eu aucun effet.
Alors, comment puis-je conserver des symboles de débogage lors de la compilation audacieuse? Le problème est que je ne fais qu'écrire un petit plugin, et que je n'ai pas compris le code audacieux. MISE À JOUR: J'ai ajouté des symboles de débogage pour gtk + et glib (et j'ai également essayé l'option CFLAGS = -g), et j'ai fait analyser quelques coredumps. La ligne de fond est la suivante:
(gdb) bt
#0 gtk_text_iter_make_real (_iter=<value optimized out>) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextiter.c:202
#1 0xb7c1cf5e in _gtk_text_iter_get_any_segment (iter=0x0) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextiter.c:474
#2 0xb7c24cd6 in IA__gtk_text_layout_get_line_display (layout=0x93a4318, line=0x9af6270, size_only=1) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextlayout.c:2196
#3 0xb7c29172 in gtk_text_layout_real_wrap (layout=0x93a4318, line=0x9af6270, line_data=0xb10036b8) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextlayout.c:1147
#4 0xb7c2358f in IA__gtk_text_layout_wrap (layout=0x93a4318, line=0x9af6270, line_data=0x0) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextlayout.c:693
#5 0xb7c060a1 in _gtk_text_btree_validate_line (tree=0x9407370, line=0x9af6270, view_id=0x93a4318) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextbtree.c:5422
#6 0xb7c27dc1 in IA__gtk_text_layout_validate_yrange (layout=0x93a4318, anchor=0xbfb0e624, y0=0, y1=635) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextlayout.c:1062
#7 0xb7c34999 in gtk_text_view_validate_onscreen (text_view=0x9406000) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextview.c:3502
#8 0xb7c35f85 in gtk_text_view_flush_first_validate (text_view=0x9406000) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextview.c:3558
#9 0xb7c35fde in first_validate_callback (data=0x9406000) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextview.c:3577
#10 0xb79c88fb in gdk_threads_dispatch (data=0x9bce910) at /build/buildd/gtk+2.0-2.16.1/gdk/gdk.c:498
#11 0xb7e38c81 in g_idle_dispatch (source=0x938a400, callback=0, user_data=0x9bce910) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:3922
#12 0xb7e3ab88 in IA__g_main_context_dispatch (context=0x9250760) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:1814
#13 0xb7e3e0eb in g_main_context_iterate (context=0x9250760, block=1, dispatch=1, self=0x92333e8) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:2448
#14 0xb7e3e5ba in IA__g_main_loop_run (loop=0x9a92c88) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:2656
#15 0xb7b707d9 in IA__gtk_main() at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c:1205
#16 0xb268d56a in skins_init() from /usr/local/lib/audacious/General/skins.so
#17 0x0805b42a in ??()
#18 0xb7540775 in __libc_start_main() from /lib/tls/i686/cmov/libc.so.6
#19 0x08055361 in ??()
(gdb)
Et l'erreur exacte est:
#0 gtk_text_iter_make_real (_iter=<value optimized out>) at /build/buildd/gtk+2.0-2.16.1/gtk/gtktextiter.c:202
202 /build/buildd/gtk+2.0-2.16.1/gtk/gtktextiter.c: No such file or directory.
in /build/buildd/gtk+2.0-2.16.1/gtk/gtktextiter.c
La ligne exacte est la suivante:
if (iter->segments_changed_stamp !=
Quelqu'un peut-il faire quelque chose sur ce sujet? : - \
-g sur gcc. – Tom