дебаггер не заходит в static constructor
От: sil_  
Дата: 03.07.07 14:44
Оценка: 5 (1)
не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB(). Может как-нибудь можно заставить дебаггер проходить полностью класс без дополнитьльных break points ?
 
public static class SClass
    {
        static SClass()
        {
            a = getA();
        }
        static int a;
        static int getA()
        {
            return 10;
        }
        public static int getB()
        {
            return a + 10;
        }
    }
class Program
    {
        static void Main()
        {
            SClass.getB();
        }
    }
Re: дебаггер не заходит в static constructor
От: Lelia  
Дата: 04.07.07 04:38
Оценка:
Здравствуйте, sil_, Вы писали:

_>не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB().


А откуда ты пытаешься это сделать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
дебаггер не заходит в static constructor
От: Аноним  
Дата: 04.07.07 02:23
Оценка:
step into called function...

но вам может помочь установка в .cctor
System.Diagnostics.Debugger.Break();
Любое удобство идет за счет мегагерцеф! : {<b>1</b>, <b>2</b>, <b>3</b>, 4, 5}


Данное сообщение получено с сайта www.gotdotnet.ru
Re: дебаггер не заходит в static constructor
От: Ovl Россия  
Дата: 04.07.07 07:57
Оценка: +1
Здравствуйте, sil_, Вы писали:

_>не могу понять почему дебаггер не заходит в static constructor с помошью step into, есдинственный вариант заставить туда его зайти это поставить туда break point, тогда заходит поочереди сначало SClass(), потом getA() и наконец getB(). Может как-нибудь можно заставить дебаггер проходить полностью класс без дополнитьльных break points ?


статический конструктор будет вызван перед вызовом функции Main, а step into только с нее начинает свое выполнение.

перенесите первое упоминание класса SClass в метод и вызывайте его


class Program
    {
        static void Main()
        {
            Run();
        }

        static void Run()
        {
            SClass.getB();
        }
    }
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
Re[2]: дебаггер не заходит в static constructor
От: Аноним  
Дата: 04.07.07 21:52
Оценка:
Здравствуйте, Ovl, Вы писали:

Ovl>статический конструктор будет вызван перед вызовом функции Main, а step into только с нее начинает свое выполнение.


статический конструктор класса будет вызван перед main Если только класс содержит main() метод внутри себя
вот еще пример

class Test
{
    static Test()
    {
        Console.WriteLine("Test class with main() static constructor ");
    }

    static void Main()
    {
        Console.WriteLine("inside main()");
        A.F();
    }
}
class A
{
    static A()
    {
        Console.WriteLine("static constructor");
    }
    public static void F()
    {
        Console.WriteLine("static metod");
    }
}

output:
Test class with main() static constructor
inside main()
static constructor
static metod

то что step into не заходит в static Test() это вы написали верно, но почему тогда step into не заходит в static A() ??
Re[3]: дебаггер не заходит в static constructor
От: Ovl Россия  
Дата: 05.07.07 07:19
Оценка:
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.