use format int unittest

Rainer Schuetze via Digitalmars-d-ide digitalmars-d-ide at puremagic.com
Sun Mar 19 11:35:12 PDT 2017



On 18.03.2017 14:54, okeyes wrote:
> visual studio 2013,visuald0.44.1 dmd2.073.2
>
> code like this
>
> import std.stdio;
> import std.string;
>
> int main(string[] argv)
> {
>     writeln("Hello D-World!");
>     return 0;
> }
>
> unittest
> {
>     string str=format("test format %d",1);
>     writeln(str);
> }
>
>
> when debugger ,getting wrong.
>
> when change Debugger"Mago" to "Visual Studio",is OK

I guess what you are seeing is a program stop at an Exception in 
std.format that is expected to be thrown by std.format unittests. These 
are compiled into your executable due to the way they are defined as 
part of a template.

The simplest workaround is to sigh and press "Continue".

Alternatively, you can disable stopping on exceptions when they are 
thrown (unhandled exceptions will still be shown). For Mago, that is 
done by unchecking "D Exceptions" in the Exceptions window (Ctrl+Alt+E). 
The Visual Studio debugger treats it as a "Win32 Exception", uncheck "D 
Exception" below that entry. The downside is that the debugger will also 
not break for exceptions that you want to debug.


More information about the Digitalmars-d-ide mailing list