C/C++ Runner by franneck94 is a Visual Studio Code extension designed to help users compile, run, and debug C, C++, and CUDA files easily. The extension provides status bar items, commands, and workspace integration to manage build/run/debug tasks for C/C++ projects.
Core Functionality
- Build, Run, Debug, Clean: Implements commands and status bar items for building, running, debugging, and cleaning C/C++ projects. Supports both single-file and folder-based workflows.
- Compiler/Debugger Integration: Detects and uses GCC, Clang, MSVC, and CUDA compilers, as well as GDB/LLDB/VS Debugger, based on user settings and platform.
- Workspace File Management: Generates and manages
.vscode/settings.json, c_cpp_properties.json, and launch.json for project configuration.
- File System Operations: Reads/writes configuration files, creates/removes build directories, and manages include paths and build artifacts.
- Process Execution: Uses VSCode's task and process APIs to launch compilers, linkers, and debuggers. No direct use of Node.js
child_process for arbitrary code execution outside of controlled build tasks.
- No Network Activity: There are no HTTP/network calls or data exfiltration mechanisms in the code.
- No Obfuscation: The code is readable, modular, and uses standard TypeScript/JavaScript patterns. No string encryption, mangling, or control flow flattening.
- No Backdoors or Arbitrary Code Execution: All code execution is limited to building/running/debugging user code via standard compilers/debuggers. No dynamic code loading or eval-like behavior.
Example: Running a Build Task
await runVscodeTask(task_name, commandLine, activeFolder, operatingSystem, problemMatcher, settingsProvider.useMsvc);
This launches a build task using the configured compiler and arguments.
Example: File System Access
fs.writeFileSync(outputFilePath, jsonString);
Used for writing configuration files only.
Example: Compiler Detection
const result = await executeCommand(command);
return result.success;
Used to check if the compiler is available.
Summary
- No suspicious API usage (no
eval, Function, or dynamic require).
- No network or telemetry code.
- No credential or sensitive data access.
- All process execution is for user-initiated build/run/debug tasks.
Conclusion: The extension is focused on its stated purpose and does not contain code with malicious intent or suspicious behavior.