RSS/Atom feed Twitter
Site is read-only, email is disabled

valgrind results

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

2 of 2 messages available
Toggle history

Please log in to manage your subscriptions.

valgrind results David Gowers 27 Jun 09:35
  valgrind results Sven Neumann 27 Jun 17:47
David Gowers
2007-06-27 09:35:21 UTC (almost 17 years ago)

valgrind results

Sven, you suggested that I run valgrind to locate the source of a bug related to eyedropping. These are the highlights of the results.

This part is probably unrelated to the eyedropping bug (bug #450802), but may be serious:

It happens after the image is loaded; don't know whether it's before or after i zoom in, but I scribble on the image with the pencil tool after zooming in, and afterwards, these messages are there.

I take it as a strong suggestion that the tile pyramid code is still a bit dodgy.
I plan to retry with '--error-limit=no' as it suggests, later, but perhaps these results will be helpful (I don't fully understand them myself yet -- eg. I only just figured out that the highest item on the stack is the first result.). A complete dump of the results is attached as a gzipped .txt, 5k.

valgrind output follows:

==14080== ==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x82CC819: tile_pyramid_validate_tile (tile-pyramid.c:482) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080== by 0x82CC5AD: tile_pyramid_validate_tile (tile-pyramid.c:382) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080== by 0x82CC5AD: tile_pyramid_validate_tile (tile-pyramid.c:382) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080==
==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x8226FD3: gimp_drawable_get_sub_preview (gimpdrawable-preview.c:415)
==14080== by 0x822737C: gimp_drawable_preview_private (gimpdrawable-preview.c:205)
==14080== by 0x8227457: gimp_drawable_get_preview (gimpdrawable-preview.c:84) ==14080== by 0x82769A0: gimp_viewable_get_new_preview (gimpviewable.c:737) ==14080== by 0x81809E4: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:178)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBAF: gimp_view_render_to_buffer (gimpviewrenderer.c:1077) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBCA: gimp_view_render_to_buffer (gimpviewrenderer.c:1079) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBE5: gimp_view_render_to_buffer (gimpviewrenderer.c:1081) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817E98E: gimp_view_render_to_buffer (gimpviewrenderer.c:1068) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817E9A9: gimp_view_render_to_buffer (gimpviewrenderer.c:1070) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x817E9C4: gimp_view_render_to_buffer (gimpviewrenderer.c:1072) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930)
==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213)
==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796)
==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129)
==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC1A3: render_image_rgb_a (gimpdisplayshell-render.c:819) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264)
==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574)
==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412)
==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365)
==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC154: render_image_rgb_a (gimpdisplayshell-render.c:829) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264)
==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574)
==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412)
==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365)
==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC161: render_image_rgb_a (gimpdisplayshell-render.c:830) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264)
==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574)
==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412)
==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365)
==14080==
==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC16E: render_image_rgb_a (gimpdisplayshell-render.c:831) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264)
==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574)
==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412)
==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365)
==14080==
==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x451E9EE: gdk_pixbuf_render_threshold_alpha (gdkpixbuf-render.c:115)
==14080== by 0x451ED8D:
gdk_pixbuf_render_pixmap_and_mask_for_colormap (gdkpixbuf-render.c:322)
==14080== by 0x4408C2D: gtk_window_realize_icon (gtkwindow.c:2955) ==14080== by 0x44090B0: gtk_window_set_icon (gtkwindow.c:3286) ==14080== by 0x80AC4DB: gimp_display_shell_update_icon (gimpdisplayshell.c:1511)
==14080== by 0x80B7DBC: gimp_display_shell_idle_update_icon (gimpdisplayshell-handlers.c:666)
==14080== by 0x47E5EB7: g_timeout_dispatch (gmain.c:3488) ==14080== by 0x47E4198: g_main_context_dispatch (gmain.c:2061) ==14080== by 0x47E7495: g_main_context_iterate (gmain.c:2694) ==14080== by 0x47E77B7: g_main_loop_run (gmain.c:2898) ==14080== by 0x8066F6B: app_run (app.c:246) ==14080== by 0x8067E55: main (main.c:381) ==14080==
==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x451E974: gdk_pixbuf_render_threshold_alpha (gdkpixbuf-render.c:129)
==14080== by 0x451ED8D:
gdk_pixbuf_render_pixmap_and_mask_for_colormap (gdkpixbuf-render.c:322)
==14080== by 0x4408C2D: gtk_window_realize_icon (gtkwindow.c:2955) ==14080== by 0x44090B0: gtk_window_set_icon (gtkwindow.c:3286) ==14080== by 0x80AC4DB: gimp_display_shell_update_icon (gimpdisplayshell.c:1511)
==14080== by 0x80B7DBC: gimp_display_shell_idle_update_icon (gimpdisplayshell-handlers.c:666)
==14080== by 0x47E5EB7: g_timeout_dispatch (gmain.c:3488) ==14080== by 0x47E4198: g_main_context_dispatch (gmain.c:2061) ==14080== by 0x47E7495: g_main_context_iterate (gmain.c:2694) ==14080== by 0x47E77B7: g_main_loop_run (gmain.c:2898) ==14080== by 0x8066F6B: app_run (app.c:246) ==14080== by 0x8067E55: main (main.c:381) ==14080==
==14080== More than 10000000 total errors detected. I'm not reporting any more. ==14080== Final error counts will be inaccurate. Go fix your program! ==14080== Rerun with --error-limit=no to disable this cutoff. Note ==14080== that errors may occur in your program without prior warning from ==14080== Valgrind, because errors are no longer being displayed. ==14080==

After that, I just shut down gimp.

==14080== ERROR SUMMARY: 10000000 errors from 27 contexts (suppressed: 87 from 1)
==14080== malloc/free: in use at exit: 10,547,993 bytes in 84,810 blocks. ==14080== malloc/free: 2,603,442 allocs, 2,518,632 frees, 524,379,066 bytes allocated.
==14080== For counts of detected errors, rerun with: -v ==14080== searching for pointers to 84,810 not-freed blocks. ==14080== checked 10,087,828 bytes.
==14080==
==14080== LEAK SUMMARY:
==14080== definitely lost: 1,756 bytes in 62 blocks. ==14080== possibly lost: 2,224,336 bytes in 2,110 blocks. ==14080== still reachable: 8,321,901 bytes in 82,638 blocks. ==14080== suppressed: 0 bytes in 0 blocks. ==14080== Rerun with --leak-check=full to see details of leaked memory.

quirks of my setup -- well, I have an unusual amount of dockables -- maybe 14 in total.
Some of these are tabbed (up to 3 tabs); Exactly 1 is docked to another window (the gimp toolbox has a dockbook holding 2 tabs: Color and Pattern, and is currently forced by the WM to be much smaller than normal (80x60 pixels IIRC), so that only the FG/BG color status tab and some of the menubar shows, the rest disappears.). That might effect the result.

Sven Neumann
2007-06-27 17:47:14 UTC (almost 17 years ago)

valgrind results

Hi,

On Wed, 2007-06-27 at 17:05 +0930, David Gowers wrote:

It happens after the image is loaded; don't know whether it's before or after i zoom in, but I scribble on the image with the pencil tool after zooming in, and afterwards, these messages are there.

I take it as a strong suggestion that the tile pyramid code is still a bit dodgy.

Nah, this is more likely just the preview being generated too early (before the data is actually initialized). Mitch is already working on that. It is not directly related to the tile pyramid code.

Thanks anyway for reporting this.

Sven