Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

2P.Knowledge.Blog.API

  • Debugger pod kontrolou

    Debugování, neboli ladění je denním chlebem každého vývojáře. Jsou dny, kdy se mi stává, že laděním strávím více než vlastní tvorbou nových funkčností a myslím, že nejsem sám  (Alespoň doufám Smile ) .

    Naštěstí je možné si chování debuggeru, pomocí nejrůznějších atributů ze jmenného prostoru System.Diagnostics, přizpůsobit. Díky těmto atributům můžeme například deklarativně určit, jakým způsobem bude debuggerem zobrazen obsah proměnné námi definovaného typu nebo které členy budou zobrazeny při ladícím prozkoumávání obsahu objektu.

    • DebuggerDisplayAttribute - Pomocí tohoto atributu je možné definovat jakým způsobem je zobrazena hodnota v proměnné. Učiníme tak pomocí řetězce, který může obsahovat výrazy ve složených závorkách, jež slouží k formátovanému zobrazení hodnot členů zobrazované instance.
    • DebuggerBrowsableAttribute - Tímto atributem jsem schopni zamezit zobrazování určitých členů při prohlížení/inspekci obsahu instance v ladícím režimu.
    • DebuggerStepTroughAttribute - Atribut sloužící k označení metod nebo vlastností (což nejsou nic jiného než metody v jiném kabátě), které budou ignorovány debugerem. Do takto označených metod při ladění debugger nevstoupí při použití klávesy F11 pro "step into" ani při explicitním umístění breakpointu (to je ovšem možné změnit nastavením Visual studia - vypnout možnost "Enable just my code" v nastavení debugování)
    • DebuggerHiddenAttribute - Slouží ke stejnému účelu jako DebuggerStepTroughAttribute, ale s tím rozdílem, že je ingorován naprosto vždy, tedy i v případě vypnutí možnosti "Enable just my code" v nastavení debugování, která v přechozím případě zapříčiní reakci na explicitně definované breakpointy.

    Podívejme se na příklad použití a na jeho důsledky při ladění.

    //Definice textu, ktery bude zobrazen pri ladeni
    [DebuggerDisplay("Person: FirstName={FirstName}, Surname={Surname}")]
    public class Person
    {
    private string firstName;
    //nebude pri ladeni zobrazeno
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    private string surname;

    //nebude pri ladeni zobrazeno
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    public string Surname
    {
    get { return surname; }
    set { surname = value; }
    }

    public string FirstName
    {
    get { return firstName; }
    //bude pri ladeni ignorovano
    [DebuggerStepThrough]
    set {firstName = value; }
    }

    }

    Standardně je obsah proměnné při ladění zobrazován nějak takto :

    Standardní zobrazení obsahu proměnné

    Po aplikaci atributu DebbugerDisplay je to již v našich rukách.

    Zobrazení hodnoty proměnné po aplikaci atributu DebuggerDisplay

    Standardně jsou při ladění zobrazeny všechny instanční členy zobrazované proměnné.

    Standardní zobrazení instančních členů

    Díky aplikaci atributu DebuggerBrowsable nejsou zobrazeny vybrané instanční členy.

    Omezení zobrazení instančních členů pomocí atributu DebuggerBrowsable

    Důsledek použití atributu DebuggerStepTrough se opravdu těžko ukazuje.. Případní zájemci vyzkouší :-)

    Hodně zdaru při ladění Wink

    Posted 4. října 2007 20:05 by Puschak | 3 Comments
    Vedeno pod:
  • Visual Studio 2005 efektivněji ?

    Efektivitu tvorby svých aplikací můžete zvýšit tím, že si zažijete některé z nepřeberného množství klávesových zkratek v prostředí Visual Studio 2005. A to třeba protože čím více jich budete používat, tím méně času strávíte přehmatáváním mezi klávesnící a myší (v lepším případě, mezi trackpointem a klávesami) ;-)

     Dostupných seznamů je na internetu několik. Mě se líbí ten, který je publikován na serveru dofactory.com, protože je pěkně rozdělen do kategorií. Vyzkoušejte a uvidíte..

     http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx

     

Více článků « Předchozí stránka
Powered by Community Server (Personal Edition), by Telligent Systems
Vyvojar.cz na prodej!