Bonjours a tous,
J'ai un petit probleme: mon programme est instable et il plante de facon plus ou moins aleatoire... (quand je dis plus ou moins c'est que je sais quelles manops faire pour le planter mais que cette meme manip ne le plante pas toujours...).
Donc avant de ma tourner vers vous j'ai cherché... et j'ai utiliser pour la premiere fois un debugger: GDB (sous linux)
apres quelque correction ca va mieux mais j'ai toujours ces 3 rapports de GDB que je ne comprend pas... (je les obtient en faisant "where" ):
Premierement celui ci, je n'y vois que des erreur GTK+ vous assi? si non vous avez peut etre une idee de ou ca vient ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #0 0xb7840e66 in ?? () from /lib/tls/i686/cmov/libc.so.6 #1 0xb7842edd in ?? () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7844cad in malloc () from /lib/tls/i686/cmov/libc.so.6 #3 0xb7a26059 in cairo_create () from /usr/lib/libcairo.so.2 #4 0xb7b48799 in setup_backing_rect_method (method=0x832b768, window=0x72657320, paint=0x178, x_offset_cairo=0, y_offset_cairo=0) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:1882 #5 0xb7b488b9 in gdk_window_clear_backing_rect (window=0x8322eb8, x=0, y=410, width=211, height=23) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:1912 #6 0xb7b49b6f in IA__gdk_window_begin_paint_region (window=0x8322eb8, region=0x8334e80) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:1021 #7 0xb7ce6ff5 in IA__gtk_main_do_event (event=0xbf921094) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmain.c:1513 #8 0xb7b49f33 in gdk_window_process_updates_internal (window=0x8322eb8) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2378 #9 0xb7b4a4a4 in IA__gdk_window_process_updates (window=0x8322eb8, update_children=1) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2494 #10 0xb7de6a11 in gtk_tree_view_clamp_node_visible (tree_view=0x81b6078, tree=0x81c05d8, node=<value optimized out>) at /build/buildd/gtk+2.0-2.12.9/gtk/gtktreeview.c:8974 #11 0xb7def2e2 in gtk_tree_view_real_set_cursor (tree_view=0x81b6078, path=0x8335830, clear_and_select=1, clamp_node=1) at /build/buildd/gtk+2.0-2.12.9/gtk/gtktreeview.c:12637 #12 0xb7df31ca in gtk_tree_view_real_move_cursor (tree_view=0x81b6078, step=GTK_MOVEMENT_DISPLAY_LINES, count=1) at /build/buildd/gtk+2.0-2.12.9/gtk/gtktreeview.c:9800 #13 0xb7cec4dc in _gtk_marshal_BOOLEAN__ENUM_INT (closure=0x81b3028, return_value=0xbf9215f8, n_param_values=3, param_values=0x8333c10, invocation_hint=0xbf9214ac, marshal_data=0xb7df2c30) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmarshalers.c:286 #14 0xb79e8079 in ?? () from /usr/lib/libgobject-2.0.so.0 #15 0xb79e9759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #16 0xb79fe11a in ?? () from /usr/lib/libgobject-2.0.so.0 #17 0xb7a000c0 in g_signal_emitv () from /usr/lib/libgobject-2.0.so.0 #18 0xb7c09ff1 in gtk_binding_entry_activate (entry=0x81b3790, object=0x81b6078) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbindings.c:536 #19 0xb7c0a54c in binding_match_activate (pspec_list=<value optimized out>, object=0x81b6078, path_length=11, path=0x8333ca8 "GtkTreeView", path_reversed=0x8345028 "weiVeerTktG", unbound=0xbf92168c) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbindings.c:1100 #20 0xb7c0a6fe in gtk_bindings_activate_list (object=0x81b6078, entries=0x81f2748, is_release=0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbindings.c:1244 #21 0xb7c0a90b in IA__gtk_bindings_activate_event (object=0x81b6078, event=0x80c9ee0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbindings.c:1338 #22 0xb7df071b in gtk_tree_view_key_press (widget=0x81b6078, event=0x80c9ee0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtktreeview.c:5392 #23 0xb7cec8d4 in _gtk_marshal_BOOLEAN__BOXED (closure=0x8083f28, return_value=0xbf921970, n_param_values=2, param_values=0xbf921a54, invocation_hint=0xbf92195c, marshal_data=0xb7df0510) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmarshalers.c:84 #24 0xb79e8079 in ?? () from /usr/lib/libgobject-2.0.so.0 #25 0xb79e982f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #26 0xb79fe11a in ?? () from /usr/lib/libgobject-2.0.so.0 #27 0xb79ff947 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #28 0xb79fff69 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #29 0xb7e0b667 in gtk_widget_event_internal (widget=0x81b6078, event=0x80c9ee0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:4678 #30 0xb7e1cdf0 in IA__gtk_window_propagate_key_event (window=0x808c818, event=0x80c9ee0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwindow.c:4936 #31 0xb7e1ff5c in gtk_window_key_press_event (widget=0x808c818, event=0x80c9ee0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwindow.c:4966 #32 0xb7cec8d4 in _gtk_marshal_BOOLEAN__BOXED (closure=0x8083f28, return_value=0xbf921f60, n_param_values=2, param_values=0xbf922044, ---Type <return> to continue, or q <return> to quit---invocation_hint=0xbf921Quit
Et puis il y a celui la... comme vous pouvez le voir il y 2 lignes (12 et 13) qui m'indique mon code, or cette a cette ligne j'ai la fonction "gtk_list_store_clear( blabla )" qui detruit une list... sauf que je vois vraiment pas pourquoi des fois ca marche et des fois pas...
ET enfin ^^ j'ai ce rapport la (c'est le dernier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #0 0xb7efc410 in __kernel_vsyscall () #1 0xb77d6085 in raise () from /lib/tls/i686/cmov/libc.so.6 #2 0xb77d7a01 in abort () from /lib/tls/i686/cmov/libc.so.6 #3 0xb780eb7c in ?? () from /lib/tls/i686/cmov/libc.so.6 #4 0xb7817962 in ?? () from /lib/tls/i686/cmov/libc.so.6 #5 0xb7818cad in malloc () from /lib/tls/i686/cmov/libc.so.6 #6 0xb781a836 in realloc () from /lib/tls/i686/cmov/libc.so.6 #7 0xb7939cb5 in g_realloc () from /usr/lib/libglib-2.0.so.0 #8 0xb7d9f4c7 in IA__gtk_tree_path_append_index (path=0x81d25a8, index=0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtktreemodel.c:556 #9 0xb7cb64a6 in gtk_list_store_get_path (tree_model=0x81ad758, iter=0xbfa0a75c) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkliststore.c:472 #10 0xb7cb8089 in IA__gtk_list_store_remove (list_store=0x81ad758, iter=0xbfa0a75c) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkliststore.c:959 #11 0xb7cb8180 in IA__gtk_list_store_clear (list_store=0x81ad758) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkliststore.c:1167 #12 0x0804f777 in Actualiser_liste (ptr_objets=0xbfa0cda0) at Actualiser_liste.c:9 #13 0x0804e8c3 in Rechercher_membre (ptr_button=0x808c978, void_ptr_objets=0xbfa0cda0) at Signaux.c:220 #14 0xb79caaff in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #15 0xb79bd759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #16 0xb79d1f8b in ?? () from /usr/lib/libgobject-2.0.so.0 #17 0xb79d3c1f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #18 0xb79d3ee0 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #19 0xb7c3af52 in emit_changed (entry=0x808c978) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkentry.c:1172 #20 0xb7c3c4b5 in gtk_entry_real_insert_text (editable=0x808c978, new_text=0x8327768 "q", new_text_length=<value optimized out>, position=0xbfa0b3f8) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkentry.c:2551 #21 0xb7cbeed8 in _gtk_marshal_VOID__STRING_INT_POINTER (closure=0x80b4520, return_value=0x0, n_param_values=4, param_values=0xbfa0b0e4, invocation_hint=0xbfa0afec, marshal_data=0xb7c3c360) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmarshalers.c:1273 #22 0xb79bc0e7 in ?? () from /usr/lib/libgobject-2.0.so.0 #23 0xb79bd759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #24 0xb79d211a in ?? () from /usr/lib/libgobject-2.0.so.0 #25 0xb79d3c1f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #26 0xb79d3ee0 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #27 0xb7c3c7ae in gtk_entry_insert_text (editable=0x808c978, new_text=0x8213ed0 "q", new_text_length=1, position=0xbfa0b3f8) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkentry.c:2244 #28 0xb7c36b52 in IA__gtk_editable_insert_text (editable=0x808c978, new_text=0x8213ed0 "q", new_text_length=1, position=0xbfa0b3f8) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkeditable.c:110 #29 0xb7c38816 in gtk_entry_enter_text (entry=0x808c978, str=0x8213ed0 "q") at /build/buildd/gtk+2.0-2.12.9/gtk/gtkentry.c:3107 #30 0xb79ca2ca in g_cclosure_marshal_VOID__STRING () from /usr/lib/libgobject-2.0.so.0 #31 0xb79bd759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #32 0xb79d1f8b in ?? () from /usr/lib/libgobject-2.0.so.0 #33 0xb79d3c1f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #34 0xb79d3ee0 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #35 0xb7c9f4be in gtk_im_multicontext_commit_cb (slave=0x831bb88, str=0x8342ec8 "q", multicontext=0x80a95b0)): la GDB me dis que il y un truc bizar ligne or il s'agit de ma boucle evenementiel "gtk_main();" qui gere tout mon affichage arggg surtout qu'elle plante aussi de facon aleatoire...
Voila voila, je n'ai pas eu d'autres rapports differents de la part de GDB (ouf!) donc si quelqu'un a eu la courage de tout lire et et a une idee a ma soumettre qu'il n'esite pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #0 0xb781179b in ?? () from /lib/tls/i686/cmov/libc.so.6 #1 0xb78154f0 in free () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7a12ac3 in cairo_pattern_destroy () from /usr/lib/libcairo.so.2 #3 0xb79fc3cd in ?? () from /usr/lib/libcairo.so.2 #4 0xb79f4fcf in cairo_destroy () from /usr/lib/libcairo.so.2 #5 0xb7b17921 in gdk_window_clear_backing_rect (window=0x8349b10, x=0, y=0, width=274, height=34) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:1924 #6 0xb7b18b6f in IA__gdk_window_begin_paint_region (window=0x831e190, region=0x8351e00) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:1021 #7 0xb7cb5ff5 in IA__gtk_main_do_event (event=0xbfc26d54) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmain.c:1513 #8 0xb7b18f33 in gdk_window_process_updates_internal (window=0x831e190) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2378 #9 0xb7b195c8 in IA__gdk_window_process_all_updates () at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2444 #10 0xb7c1dcff in gtk_container_idle_sizer (data=0x0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1307 #11 0xb7aff81b in gdk_threads_dispatch (data=0x82126d0) at /build/buildd/gtk+2.0-2.12.9/gdk/gdk.c:470 #12 0xb792b1e1 in ?? () from /usr/lib/libglib-2.0.so.0 #13 0xb792cdd6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #14 0xb7930193 in ?? () from /usr/lib/libglib-2.0.so.0 #15 0xb7930577 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #16 0xb7cb6264 in IA__gtk_main () at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmain.c:1163 #17 0x0804c901 in Interface_graphique (argc=1, argv=0xbfc271e4, ptr_global=0x8053450) at Interface_graphique.c:486 #18 0x0804a0ec in main (argc=1, argv=0xbfc271e4) at main.c:13
Au pire si quelqu'un a une meillieur facon pour debugger du GTK+ qu'il n'esite pas non plus
Merci d'avance![]()
Partager