Mit ‘Debugger’ getaggte Artikel

Debugger anfordern

Samstag, 26. September 2009

Hin und wieder gibt es den Bedarf den Ablauf eines Programmes zu stoppen und in den Debugger zu springen. Visual Studio bietet hier die komfortable Möglichkeit der Haltepunkte (neudeutsch Breakpoints). Leider gibt es öfter Situationen, an denen ein einfacher Breakpoint nicht ausreicht. Dies ist insbesondere der Fall wenn die jeweilige Zeile 100fach ausgeführt wird, aber man nur bei einer bestimmten Nebenbedingung den Debugger auslösen möchte.

System.Diagnostics.Debugger.Break()

Diese Funktionalität nutze ich beim FBK. Wenn ich die Ausführung einer bestimmten Rolle testen möchte, trage ich in der Xml-Konfigurationsdatei das Attribut ‘debug’ ein.

        <role type="mutateresources" id="BeerMutating" debug="True">
          <input>
            <resource type="Hop" amount="8" />
            <resource type="Brewer" amount="8" />
          </input>
          <output>
            <resource type="Beer" amount="8" />
          </output>
          <outputresearcheffects>
            <researcheffect research="Brewery">
              <multiplicator type="exponential"
                             factor="1"
                             base="1.1"
                             exponentoffset="0"
                             offset="0" />
            </researcheffect>
          </outputresearcheffects>
        </role>

Wird diese Rolle nun ausgeführt, so hält Visual Studio die Ausführung an und ermöglicht ein einfaches Debuggen.

/// <summary>
/// Executes the role
/// </summary>
/// <param name="worldState">Current worldstate</param>
public void Execute(IWorldState worldState)
{
    if (this.Role.IsDebug)
    {
        Debugger.Break();
    }

    this.Role.ExecuteRole(this.RoleStatus, worldState);
}

Nettes Feature…