Skip to main content

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 antenna_green.svgantenna_red.svg Dbux Runtime Server. If enabled, it receives data from Dbux-enabled applications running on localhost1. 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:

screens/runtime-server-button.png
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.

CommandTitleDescription
dbux.backendLoginDbux: Backend Login(Feature still in development. Won't work.)
dbux.debugFileDbux: Debug Current FileRun selected file with Dbux, but with Node's --inspect-brk enabled. Make sure to enable VSCode's auto attach beforehand.
dbux.deleteUserEventsDbux Dev: Delete all user events(Feature still in development. Won't work.)
dbux.diagnosticsDbux: Diagnostics
dbux.doActivate1Dbux: Start Dbux
dbux.exportApplicationDataDbux: Export Application DataExport raw recorded Dbux data of a previously executed application to a json file.
dbux.hideDecorationsDbux: Hide Code DecorationsDo not annotate executed code with Dbux code decorations (✦↱🔥ƒ etc).
dbux.hideGraphViewDbux: Hide Call GraphClose the Call Graph panel.
dbux.hidePathwaysViewDbux: Hide Pathways View
dbux.importApplicationDataDbux: Import Application Data
dbux.loadPracticeLogFileDbux Dev: Load Practice Log
dbux.loadResearchSessionDbux: Load research session
dbux.openExportFolderDbux: Open Export Folder
dbux.openPracticeLogFolderDbux: Open Practice Log Folder
dbux.reloadExerciseListDbux: Reload Exercise List
dbux.resetPracticeLogDbux Dev: Reset Practice Log
dbux.resetPracticeProgressDbux Dev: Reset Practice Progress
dbux.runFileDbux: Run Current FileRun selected file with Dbux
dbux.searchContextsDbux: Search in contexts
dbux.searchTracesDbux: Search in traces
dbux.searchValuesDbux: Search in values
dbux.selectTraceByIdDbux: Select Trace by idMostly used for debugging Dbux, or when (for some other reason) you would know some trace by its id.
dbux.showDecorationsDbux: Show Code DecorationsShow code decorations again after hiding them.
dbux.showGraphViewDbux: Show Call GraphOpen the Call Graph panel.
dbux.showHelpDbux: HelpShow the Dbux help dialog.
dbux.showOutputChannelDbux: Show output channel
dbux.showPDGOfContextDbux: Open PDG for Selected Function
dbux.showPathwaysViewDbux: Show Pathways View
dbux.startPathwaysDbux Pathways: Start
dbux.startRuntimeServerDbux: Start Dbux Runtime Server
dbux.stopPathwaysDbux Pathways: Stop
dbux.stopRuntimeServerDbux: Stop Dbux Runtime Server
dbux.systemCheckDbux: Check System DependenciesDbux (especially Dbux practice) needs some system tools in order to work properly. You can check these dependencies with this command.
dbux.testPDGDbux Dev: Test PDG
dbux.toggleErrorLogDbux: Toggle Error NotificationsSuppress/unsuppress all Dbux error notifications.
dbux.toggleNavButtonDbux: Toggle Editor Navigation Bar ButtonsHide/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.togglePracticeViewDbux: Toggle Practice ViewFeature still in development. You can use this to use Dbux on a pre-configured bug in express.
dbuxApplicationsView.clearApplicationClear Applications
dbuxGlobalAnalysisView.node.nextSearchModeNext search mode
dbuxProject.uploadLogDbux Project: Upload log files
dbuxProjectView.showDiffDbux Project: Show difference
dbuxSessionView.flushCacheDbux Project: Flush cache
dbuxSessionView.runDbux Project: Run without dbux
dbuxSessionView.run#dbuxDbux Project: Run with dbux
dbuxSessionView.run#debugDbux Project: Run without dbux in debug mode
dbuxSessionView.run#debug#dbuxDbux Project: Run with dbux in debug mode
dbuxTraceDetailsView.navigation.NextChildContextDbux: Go to next function call in context
dbuxTraceDetailsView.navigation.NextInContextDbux: Go to next "non-trivial" trace in context
dbuxTraceDetailsView.navigation.NextParentContextDbux: Go to end of context
dbuxTraceDetailsView.navigation.NextStaticTraceDbux: Go to next execution of the same trace
dbuxTraceDetailsView.navigation.NextTraceDbux: Go to next trace (unconditionally)
dbuxTraceDetailsView.navigation.PreviousChildContextDbux: Go to previous function call in context
dbuxTraceDetailsView.navigation.PreviousInContextDbux: Go to previous "non-trivial" trace in context
dbuxTraceDetailsView.navigation.PreviousParentContextDbux: Go to start of context
dbuxTraceDetailsView.navigation.PreviousStaticTraceDbux: Go to previous execution of the same trace
dbuxTraceDetailsView.navigation.PreviousTraceDbux: Go to previous trace (unconditionally)
dbuxTraceDetailsView.selectTraceAtCursorDbux: Select Trace At CursorSelects 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.

EntryTypeDefaultDescription
dbux.autoStartbooleanfalseWhether 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.gitstringgitWhen executing git terminal commands, use git from this path. Only used for auto-installing and managing practice projects.
dbux.paths.nodestringnodeWhen executing terminal commands, use node from this path. (Hint: If you change this, you probably also want to change paths.npm.)
dbux.paths.npmstringnpmWhen 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.yarnstringyarnWhen 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.shellstringcmdWhen executing terminal or system commands, use this shell.
dbux.paths.posix.shellstringbashWhen executing terminal or system commands, use this shell.
dbux.shells.bash.inlineFlagsarray["-c"]Args required to run an inline command with bash. See https://stackoverflow.com/questions/20858381/what-does-bash-c-do
dbux.shells.bash.pausestringread -p "(Done. Press any key to exit.)"Shell-specific pause command.
dbux.shells.bash.sepstring;Shell-specific multi-command separator.
dbux.shells.cmd.inlineFlagsarray["/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.pausestringpauseShell-specific pause command.
dbux.shells.cmd.sepstring&Shell-specific multi-command separator.
dbux.run.dbuxArgsstring--esnextCustom 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.nodeArgsstring--enable-source-mapsCustom node options passed to node when running the program.
dbux.run.programArgsstringCustom program arguments, available to the program via process.argv.
dbux.run.envobject{}Custom program environment variables available via process.env (probably not working yet).
dbux.debug.dbuxArgsstring--esnextCustom 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.nodeArgsstringCustom node options passed to node when running the program.
dbux.debug.programArgsstringCustom program arguments, available to the program via process.argv.
dbux.debug.envobject{}Custom program environment variables available via process.env (probably not working yet).
dbux.packageWhiteliststringSpecify which package will be traced by Dbux, seperated by space, regex supported.

  1. 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.↩
  2. You might need to hover over the Applications view for buttons to show up. This is a limitation of the VSCode Extension API.↩