From b7e22441efc5def9a8762bf9506b152cd09ba7ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Tue, 28 Jul 2026 16:42:54 +0200 Subject: [PATCH] Add print_alive_tasks() debug binding Expose g_task_print_alive_tasks() as _frida.print_alive_tasks(), wrapped as frida.print_alive_tasks() in both facades. Requires a GLib built with G_ENABLE_DEBUG. --- frida/frida_bindgen/assets/facade_toplevel.py | 5 +++++ frida/frida_bindgen/assets/facade_toplevel_aio.py | 5 +++++ frida/frida_bindgen/assets/module_print_alive_tasks.c | 11 +++++++++++ frida/frida_bindgen/customization.py | 6 ++++++ 4 files changed, 27 insertions(+) create mode 100644 frida/frida_bindgen/assets/module_print_alive_tasks.c diff --git a/frida/frida_bindgen/assets/facade_toplevel.py b/frida/frida_bindgen/assets/facade_toplevel.py index e8120f3..204767e 100644 --- a/frida/frida_bindgen/assets/facade_toplevel.py +++ b/frida/frida_bindgen/assets/facade_toplevel.py @@ -77,3 +77,8 @@ def make_auth_callback(callback: Callable[[str], Any]) -> Callable[[Any], str]: return json.dumps(session_info) return authenticate + + +# TEMPORARY DEBUG HACK +def print_alive_tasks() -> None: + _frida.print_alive_tasks() diff --git a/frida/frida_bindgen/assets/facade_toplevel_aio.py b/frida/frida_bindgen/assets/facade_toplevel_aio.py index b6dd8e5..17ac871 100644 --- a/frida/frida_bindgen/assets/facade_toplevel_aio.py +++ b/frida/frida_bindgen/assets/facade_toplevel_aio.py @@ -78,3 +78,8 @@ def make_auth_callback(callback: Callable[[str], Any]) -> Callable[[Any], str]: return json.dumps(session_info) return authenticate + + +# TEMPORARY DEBUG HACK +def print_alive_tasks() -> None: + _frida.print_alive_tasks() diff --git a/frida/frida_bindgen/assets/module_print_alive_tasks.c b/frida/frida_bindgen/assets/module_print_alive_tasks.c new file mode 100644 index 0000000..307b2f8 --- /dev/null +++ b/frida/frida_bindgen/assets/module_print_alive_tasks.c @@ -0,0 +1,11 @@ +/* TEMPORARY DEBUG HACK: needs a GLib built with G_ENABLE_DEBUG. */ +extern void g_task_print_alive_tasks (void); + +static PyObject * +PyFrida_print_alive_tasks (PyObject * module, + PyObject * args) +{ + g_task_print_alive_tasks (); + + Py_RETURN_NONE; +} diff --git a/frida/frida_bindgen/customization.py b/frida/frida_bindgen/customization.py index 25c95c3..c63317a 100644 --- a/frida/frida_bindgen/customization.py +++ b/frida/frida_bindgen/customization.py @@ -34,6 +34,12 @@ def load_customizations() -> Customizations: c_symbol="PyFrida_get_device_manager", asset="module_get_device_manager.c", ), + # TEMPORARY DEBUG HACK + ModuleFunction( + py_name="print_alive_tasks", + c_symbol="PyFrida_print_alive_tasks", + asset="module_print_alive_tasks.c", + ), ), ), ),