Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Debug

Before using debug in poseidon, we need the newest ddbg(http://www.dsource.org/projects/ddbg_continued), please download it and set it's path in poseidon Tools menu.(Tools -> Options... -> Compiler & Debugger)



Now we open a project and Debug it, we can click menu(Debug -> Bulud and Debug) to build the project with -g compiler option automatically, otherwise we can select the project option set the "Add CodeView? 4 symbolic debug info with D extensions [-g]" was checked, then click "Run debugger"

The Debug view window will display:



Now we need to set the breakpoint, to set breakpoint has two ways: (1)Ctrl + Left Click at margin (2)Menu Debug -> Set / Remove Breakpoint (At first, move the cursor to the target line)

The margin will add the "Red-Rect" sign:

We also can check the Breakpoint window to sure:

Or we can move the cursor to the target line, then click menu Debug -> Run Debugger to Cursor without set the breakpoint.(SHIFT + Left Click at mergin is the short-cut)

Now push Run / Resume button to start debugging.



Select Variabies window to show LSV(Local Scope Variable), if nothing happen, push the Refresh button or we can set the Link With Ddbg Command button was checked, the Variabies window will auto-refresh every step.



To watch the variable value, we can also move the mouse to variable and stay one second, the value will show:



Also we can watch specific variable value. Select Watchlist window and push Add button, a popup window will show then key-in the variable name and OK:

The variable can be removed using Right-Click at variable on Watchlist:

There is a simple way to add watch, select the variable and Right-Click, select Send Variable to Watchlist:



Finally, the Variables and Watchlist window sometimes show the value = ..., double-click to expand to show the element:



I usually not using debug while coding, so if there are any bugs using debugging, please tell me, TKS.