Skip to main content

debug-sandbox-execution

Debug Python code execution failures by capturing partial traces, isolating failing functions, and incrementally verifying outputs

Informations de source

Dépôt
HKUDS/OpenSpace
Dernière activité de la source
17 juillet 2026 à 03:43
Langue détectée de SKILL.md
anglais
Étoiles
7 773
Forks
923

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
debug-sandbox-execution
description
Debug Python code execution failures by capturing partial traces, isolating failing functions, and incrementally verifying outputs
# Debug Sandbox Execution Failures When `execute_code_sandbox` fails with unknown errors or incomplete output, use this debugging pattern to identify the root cause and recover incrementally. ## Problem The `execute_code_sandbox` tool may fail silently, truncate output, or produce opaque errors. Complex scripts with multiple file outputs are especially prone to partial failures. ## Solution Use a three-phase debugging approach: ### Phase 1: Capture Partial Execution Traces When a sandbox execution fails, rerun the code using `run_shell` with output piping to capture whatever output is produced before the failure: ```bash python your_script.py 2>&1 | head -100 ``` This reveals: - Which functions/steps executed successfully - Where the failure occurred - Any error messages that were suppressed ### Phase 2: Isolate Failing Functions Break the script into smaller, testable units. Execute each function or code block independently: ```python # Test individual components if __name__ == "__main__": # Step 1: Test imports import numpy as np print("Imports OK") # Step 2: Test function A in isolation result_a = function_a() print(f"Function A: {result_a}") # Step 3: Test function B result_b = function_b(result_a) print(f"Function B: {result_b}") ``` Run each section with `execute_code_sandbox` separately to identify which component fails. ### Phase 3: Incremental Output Generation Generate output files one at a time, verifying each before proceeding: ```python import numpy as np import soundfile as sf # Generate and save file 1 audio1 = np.random.randn(48000 * 10).astype(np.float32) sf.write('output_01.wav', audio1, 48000, subtype='FLOAT') # Verify file 1 exists and has expected properties import os assert os.path.exists('output_01.wav'), "File 1 not created" # Generate and save file 2 audio2 = np.random.randn(48000 * 10).astype(np.float32) sf.write('output_02.wav', audio2, 48000, subtype='FLOAT') # Verify file 2 assert os.path.exists('output_02.wav'), "File 2 not created" ``` ## Example Workflow 1. **Initial attempt**: Run full script with `execute_code_sandbox` 2. **On failure**: Rerun with `run_shell` and `| head -100` to see partial output 3. **Identify breakpoint**: Find the last successful operation 4. **Split script**: Create separate scripts for each major section 5. **Test incrementally**: Run each section, verify outputs, proceed to next 6. **Combine successful sections**: Once all pieces work, combine into final script ## Best Practices - **Always verify file creation** immediately after writing: `assert os.path.exists(path)` - **Check file properties** (size, duration, format) before assuming success - **Use print statements liberally** to mark progress through the script - **Save intermediate outputs** so failures don't require restarting from scratch - **Test audio/video generation** with short samples first (1-2 seconds) before full-length content ## When to Use - Complex scripts with multiple file outputs - Audio/video generation pipelines - Scripts with external library dependencies - Any `execute_code_sandbox` call that produces incomplete or no output
Voir sur GitHub