Dbux VSCode Extension
The Dbux VSCode Extension is available on the VSCode Marketplace. It is currently the only GUI implementation for Dbux.
tip
This page goes into some lower level details while the Dynamic Analysis manual explains the GUI and all analysis features in detail.
Runtime Server
Currently, the VSCode Extension is the only implementation of the Dbux Runtime Server. If enabled, it receives data from Dbux-enabled applications running on localhost
1. Once a first batch of data is received, the application will show up in the Application View.
The Runtime Server is turned off by default. It turns on automatically the first time you use the Run Button or run a Dbux Practice exercise.
You can manually turn it on or off via "the Runtime Server button" at the top of the Applications view2:
note
Since the Runtime Server port is currently hard-coded1, only one instance can be running per computer/VM/container. Trying to start another instance will fail with a corresponding "port in use" error message.
Commands
Dbux offers a multitude of commands.
Don't know how to use commands?
tip
(Almost?) all buttons in the Dbux VSCode Extension have corresponding commands.
Also: You can bind commands to keys: VSCode official documentation on key-binds.
Command | Title | Description |
---|---|---|
dbux.backendLogin | Dbux: Backend Login | (Feature still in development. Won't work.) |
dbux.debugFile | Dbux: Debug Current File | Run selected file with Dbux, but with Node's --inspect-brk enabled. Make sure to enable VSCode's auto attach beforehand. |
dbux.deleteUserEvents | Dbux Dev: Delete all user events | (Feature still in development. Won't work.) |
dbux.diagnostics | Dbux: Diagnostics | |
dbux.doActivate1 | Dbux: Start Dbux | |
dbux.exportApplicationData | Dbux: Export Application Data | Export raw recorded Dbux data of a previously executed application to a json file. |
dbux.hideDecorations | Dbux: Hide Code Decorations | Do not annotate executed code with Dbux code decorations (✦↱🔥ƒ etc). |
dbux.hideGraphView | Dbux: Hide Call Graph | Close the Call Graph panel. |
dbux.hidePathwaysView | Dbux: Hide Pathways View | |
dbux.importApplicationData | Dbux: Import Application Data | |
dbux.loadPracticeLogFile | Dbux Dev: Load Practice Log | |
dbux.loadResearchSession | Dbux: Load research session | |
dbux.openExportFolder | Dbux: Open Export Folder | |
dbux.openPracticeLogFolder | Dbux: Open Practice Log Folder | |
dbux.reloadExerciseList | Dbux: Reload Exercise List | |
dbux.resetPracticeLog | Dbux Dev: Reset Practice Log | |
dbux.resetPracticeProgress | Dbux Dev: Reset Practice Progress | |
dbux.runFile | Dbux: Run Current File | Run selected file with Dbux |
dbux.searchContexts | Dbux: Search in contexts | |
dbux.searchTraces | Dbux: Search in traces | |
dbux.searchValues | Dbux: Search in values | |
dbux.selectTraceById | Dbux: Select Trace by id | Mostly used for debugging Dbux, or when (for some other reason) you would know some trace by its id. |
dbux.showDecorations | Dbux: Show Code Decorations | Show code decorations again after hiding them. |
dbux.showGraphView | Dbux: Show Call Graph | Open the Call Graph panel. |
dbux.showHelp | Dbux: Help | Show the Dbux help dialog. |
dbux.showOutputChannel | Dbux: Show output channel | |
dbux.showPDGOfContext | Dbux: Open PDG for Selected Function | |
dbux.showPathwaysView | Dbux: Show Pathways View | |
dbux.startPathways | Dbux Pathways: Start | |
dbux.startRuntimeServer | Dbux: Start Dbux Runtime Server | |
dbux.stopPathways | Dbux Pathways: Stop | |
dbux.stopRuntimeServer | Dbux: Stop Dbux Runtime Server | |
dbux.systemCheck | Dbux: Check System Dependencies | Dbux (especially Dbux practice) needs some system tools in order to work properly. You can check these dependencies with this command. |
dbux.testPDG | Dbux Dev: Test PDG | |
dbux.toggleErrorLog | Dbux: Toggle Error Notifications | Suppress/unsuppress all Dbux error notifications. |
dbux.toggleNavButton | Dbux: Toggle Editor Navigation Bar Buttons | Hide/show Dbux buttons in the editor tab bar. Use this if you don't want to see any extra buttons at the top right of your editor tab bar. |
dbux.togglePracticeView | Dbux: Toggle Practice View | Feature still in development. You can use this to use Dbux on a pre-configured bug in express. |
dbuxApplicationsView.clearApplication | Clear Applications | |
dbuxGlobalAnalysisView.node.nextSearchMode | Next search mode | |
dbuxProject.uploadLog | Dbux Project: Upload log files | |
dbuxProjectView.showDiff | Dbux Project: Show difference | |
dbuxSessionView.flushCache | Dbux Project: Flush cache | |
dbuxSessionView.run | Dbux Project: Run without dbux | |
dbuxSessionView.run#dbux | Dbux Project: Run with dbux | |
dbuxSessionView.run#debug | Dbux Project: Run without dbux in debug mode | |
dbuxSessionView.run#debug#dbux | Dbux Project: Run with dbux in debug mode | |
dbuxTraceDetailsView.navigation.NextChildContext | Dbux: Go to next function call in context | |
dbuxTraceDetailsView.navigation.NextInContext | Dbux: Go to next "non-trivial" trace in context | |
dbuxTraceDetailsView.navigation.NextParentContext | Dbux: Go to end of context | |
dbuxTraceDetailsView.navigation.NextStaticTrace | Dbux: Go to next execution of the same trace | |
dbuxTraceDetailsView.navigation.NextTrace | Dbux: Go to next trace (unconditionally) | |
dbuxTraceDetailsView.navigation.PreviousChildContext | Dbux: Go to previous function call in context | |
dbuxTraceDetailsView.navigation.PreviousInContext | Dbux: Go to previous "non-trivial" trace in context | |
dbuxTraceDetailsView.navigation.PreviousParentContext | Dbux: Go to start of context | |
dbuxTraceDetailsView.navigation.PreviousStaticTrace | Dbux: Go to previous execution of the same trace | |
dbuxTraceDetailsView.navigation.PreviousTrace | Dbux: Go to previous trace (unconditionally) | |
dbuxTraceDetailsView.selectTraceAtCursor | Dbux: Select Trace At Cursor | Selects the trace at the keyboard cursor (if there is any executed trace). |
Config
tip
You can change configuration via the Preferences: Open User/Workspace Settings
commands.
Entry | Type | Default | Description |
---|---|---|---|
dbux.autoStart | boolean | false | Whether to auto-start Dbux when opening vscode. Else, you have to click the "Start Dbux" button manually every time. (During this early stage, we still hide Dbux default behavior behind a button, to make sure you don't see annoying messages pop up when Dbux has to update dependencies etc. We will improve upon that as Dbux evolves.) |
dbux.paths.git | string | git | When executing git terminal commands, use git from this path. Only used for auto-installing and managing practice projects. |
dbux.paths.node | string | node | When executing terminal commands, use node from this path. (Hint: If you change this, you probably also want to change paths.npm .) |
dbux.paths.npm | string | npm | When installing packages initially or practice projects, use npm from this path. (Hint: If you change this, you probably also want to change paths.node .) |
dbux.paths.yarn | string | yarn | When playing with practice projects that require yarn , use this path. (Hint: If you change this, you probably also want to change paths.npm .) |
dbux.paths.windows.shell | string | cmd | When executing terminal or system commands, use this shell. |
dbux.paths.posix.shell | string | bash | When executing terminal or system commands, use this shell. |
dbux.shells.bash.inlineFlags | array | ["-c"] | Args required to run an inline command with bash. See https://stackoverflow.com/questions/20858381/what-does-bash-c-do |
dbux.shells.bash.pause | string | read -p "(Done. Press any key to exit.)" | Shell-specific pause command. |
dbux.shells.bash.sep | string | ; | Shell-specific multi-command separator. |
dbux.shells.cmd.inlineFlags | array | ["/k"] | Args required to run an inline command with cmd. See https://stackoverflow.com/questions/9392874/bat-file-open-new-cmd-window-and-execute-a-command-in-there |
dbux.shells.cmd.pause | string | pause | Shell-specific pause command. |
dbux.shells.cmd.sep | string | & | Shell-specific multi-command separator. |
dbux.run.dbuxArgs | string | --esnext | Custom dbux run command options. You can find a list of all available dbux command options in https://github.com/Domiii/dbux/blob/master/dbux-cli/src/commandCommons.js |
dbux.run.nodeArgs | string | --enable-source-maps | Custom node options passed to node when running the program. |
dbux.run.programArgs | string | Custom program arguments, available to the program via process.argv . | |
dbux.run.env | object | {} | Custom program environment variables available via process.env (probably not working yet). |
dbux.debug.dbuxArgs | string | --esnext | Custom dbux run command options. You can find a list of all available dbux command options in https://github.com/Domiii/dbux/blob/master/dbux-cli/src/commandCommons.js |
dbux.debug.nodeArgs | string | Custom node options passed to node when running the program. | |
dbux.debug.programArgs | string | Custom program arguments, available to the program via process.argv . | |
dbux.debug.env | object | {} | Custom program environment variables available via process.env (probably not working yet). |
dbux.packageWhitelist | string | Specify which package will be traced by Dbux, seperated by space, regex supported. |
- Dbux can currently only receive data on
localhost
via a hard-coded port. This is a known limitation we intend to address in the near future.↩ - You might need to hover over the
Applications
view for buttons to show up. This is a limitation of the VSCode Extension API.↩