From b38d01ae8c26d48fb34c68a7cd427f6cb8dedaf9 Mon Sep 17 00:00:00 2001 From: Pedr Date: Wed, 30 Apr 2025 16:16:08 -0300 Subject: [PATCH 1/2] feat: Add OS-aware solana-lldb path detection --- extension.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/extension.js b/extension.js index 9db8ec5..7cec92a 100644 --- a/extension.js +++ b/extension.js @@ -55,6 +55,49 @@ function getCommandPath(command) { return ""; } } +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +function findSolanaLldbPath() { + const osPaths = { + 'darwin': [ + `${process.env.HOME}/.local/share/solana/install/active_release/bin/sdk/sbf/dependencies/platform-tools/llvm/bin/solana-lldb`, + '/usr/local/bin/solana-lldb' + ], + 'linux': [ + `${process.env.HOME}/.cache/solana/**/platform-tools/llvm/bin/solana-lldb`, + '/usr/bin/solana-lldb', + '/home/linuxbrew/.linuxbrew/bin/solana-lldb' + ], + 'win32': [ + path.join(process.env.APPDATA, 'solana', 'bin', 'solana-lldb.exe'), + path.join(process.env.LOCALAPPDATA, 'solana', 'bin', 'solana-lldb.exe') + ] + }; + + // 1. Search in system path + const pathCheck = which.sync('solana-lldb', {nothrow: true}); + if (pathCheck) return pathCheck; + + // 2. Search in more OS specific routes + const platformPaths = osPaths[process.platform] || []; + for (const p of platformPaths) { + const files = glob.sync(p); + if (files.length > 0) return files[0]; + } + + // 3. Fallback: project directory + const projectPath = path.join(workspaceRoot, 'cache', 'solana', '**', 'platform-tools', 'llvm', 'bin', 'solana-lldb'); + const projectFiles = glob.sync(projectPath); + return projectFiles[0] || null; +} +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ +//_________________________________________________________________________________________________________________________________ function runCommand(command, args = "") { const commandPath = getCommandPath(command); From bcfd96c9b8481dfa6ad7602c8d1ed3f89230960a Mon Sep 17 00:00:00 2001 From: Pedr Date: Wed, 30 Apr 2025 16:32:05 -0300 Subject: [PATCH 2/2] feat: Add OS-aware solana-lldb path detection --- extension.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/extension.js b/extension.js index 7cec92a..5355547 100644 --- a/extension.js +++ b/extension.js @@ -55,11 +55,7 @@ function getCommandPath(command) { return ""; } } -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ + function findSolanaLldbPath() { const osPaths = { 'darwin': [ @@ -93,11 +89,6 @@ function findSolanaLldbPath() { const projectFiles = glob.sync(projectPath); return projectFiles[0] || null; } -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ -//_________________________________________________________________________________________________________________________________ function runCommand(command, args = "") { const commandPath = getCommandPath(command);