From f6b091498f51db2798f13f578c3be56f849453a9 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Thu, 6 Nov 2025 16:51:46 +0800 Subject: [PATCH] Fix missing debug link and debug option --- src/SPC/builder/unix/UnixBuilderBase.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/SPC/builder/unix/UnixBuilderBase.php b/src/SPC/builder/unix/UnixBuilderBase.php index 570d8093..941b3f47 100644 --- a/src/SPC/builder/unix/UnixBuilderBase.php +++ b/src/SPC/builder/unix/UnixBuilderBase.php @@ -101,11 +101,15 @@ abstract class UnixBuilderBase extends BuilderBase FileSystem::createDir($target_dir); $basename = basename($binary_path); $debug_file = "{$target_dir}/{$basename}" . (PHP_OS_FAMILY === 'Darwin' ? '.dwarf' : '.debug'); - shell()->exec(match (PHP_OS_FAMILY) { - 'Darwin' => "dsymutil -f {$binary_path} -o {$debug_file}", - 'Linux' => "objcopy ---only-keep-debug {$binary_path} {$debug_file}", - default => throw new SPCInternalException('extractDebugInfo is only supported on Linux and macOS'), - }); + if (PHP_OS_FAMILY === 'Darwin') { + shell()->exec("dsymutil -f {$binary_path} -o {$debug_file}"); + } elseif (PHP_OS_FAMILY === 'Linux') { + shell() + ->exec("objcopy --only-keep-debug {$binary_path} {$debug_file}") + ->exec("objcopy --add-gnu-debuglink={$debug_file} {$binary_path}"); + } else { + throw new SPCInternalException('extractDebugInfo is only supported on Linux and macOS'); + } return $debug_file; }