Skip to content

gobject_gdb.py: support gsignal fastpath and detect more marshallers

Nelson Ben requested to merge fixes_for_gdb_python_helper into main
  • Commit f02ec2f2 added a gsignal fastpath where g_closure_invoke_va() is directly called from g_signal_emit_valist() skipping signal_emit_unlocked_R() altogether which it's the function used by gobject_gdb.py to detect signal emission.

    So we update gobject_gdb.py to also detect signals which use this g_closure_invoke_va() fastpath.

  • We also update the code that detects marshallers to also include these:

    surface_event_marshaller()
    gdk_surface_event_marshallerv()
    g_type_class_meta_marshal()
    g_type_class_meta_marshalv()

    This allow us that for signal emissions which use those marshallers to keep showing the signal handler frame just after the <emit signal blabla> line.

BEFORE:
Captura_desde_2023-05-18_16-25-18

AFTER:
Captura_desde_2023-05-18_15-44-24

BEFORE:
Captura_desde_2023-05-18_16-24-36

AFTER:
Captura_desde_2023-05-18_15-43-52

Edited by Nelson Ben

Merge request reports