From aba2a9b852c65d770bd1b77aac883cca7cce008a Mon Sep 17 00:00:00 2001 From: Bruno Lopes Date: Tue, 24 Mar 2026 06:55:48 -0300 Subject: [PATCH] meson, tools: Add check for GDB when debug-self-in-build option is set --- meson.build | 7 ++++++- tools/in-build-gimp.py | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 7cbd230bf5..9305ae2cc7 100644 --- a/meson.build +++ b/meson.build @@ -2016,7 +2016,12 @@ gimp_run_env=environment() gimp_run_env.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root()) gimp_run_env.set('GIMP_GLOBAL_SOURCE_ROOT', meson.global_source_root()) if get_option('debug-self-in-build') - gimp_run_env.set('GIMP_DEBUG_SELF', '1') + gdb = find_program('gdb', required: true) + if not platform_windows or platform_windows and debugging_format == 'DWARF' + gimp_run_env.set('GIMP_DEBUG_SELF_WRAPPER', gdb.full_path()) + else + error('GDB does not support native CodeView symbols. Please set -Dwin-debugging=dwarf') + endif endif gimp_run_env.set('GIMP_PYTHON_WITH_GI', python.full_path()) diff --git a/tools/in-build-gimp.py b/tools/in-build-gimp.py index e30ca892b1..1cd7b96cbe 100644 --- a/tools/in-build-gimp.py +++ b/tools/in-build-gimp.py @@ -60,9 +60,9 @@ try: os.symlink(os.environ.get("GIMP_PYTHON_WITH_GI"), tmp_symlink) os.environ["PATH"] = tmp_path + os.pathsep + os.environ.get("PATH", "") - if "GIMP_DEBUG_SELF" in os.environ and shutil.which("gdb"): - print(f"RUNNING: gdb --batch -x {os.environ['GIMP_GLOBAL_SOURCE_ROOT']}/tools/debug-in-build-gimp.py --args {os.environ['GIMP_SELF_IN_BUILD']} {' '.join(sys.argv[1:])}") - subprocess.run(["gdb","--return-child-result","--batch","-x",f"{os.environ['GIMP_GLOBAL_SOURCE_ROOT']}/tools/debug-in-build-gimp.py","--args", os.environ["GIMP_SELF_IN_BUILD"]] + sys.argv[1:], stdin=sys.stdin, check=True) + if "GIMP_DEBUG_SELF_WRAPPER" in os.environ and shutil.which("gdb"): + print(f"RUNNING: {os.environ['GIMP_DEBUG_SELF_WRAPPER']} --batch -x {os.environ['GIMP_GLOBAL_SOURCE_ROOT']}/tools/debug-in-build-gimp.py --args {os.environ['GIMP_SELF_IN_BUILD']} {' '.join(sys.argv[1:])}") + subprocess.run([os.environ["GIMP_DEBUG_SELF_WRAPPER"],"--return-child-result","--batch","-x",f"{os.environ['GIMP_GLOBAL_SOURCE_ROOT']}/tools/debug-in-build-gimp.py","--args", os.environ["GIMP_SELF_IN_BUILD"]] + sys.argv[1:], stdin=sys.stdin, check=True) else: print(f"RUNNING: {os.environ['GIMP_SELF_IN_BUILD']} {' '.join(sys.argv[1:])}") subprocess.run([os.environ["GIMP_SELF_IN_BUILD"]] + sys.argv[1:],stdin=sys.stdin, check=True)