Конференция "Прочее" » Подавления окна отладчика "Debugger Exception Notification"
 
  • Добежал (19.01.09 19:34) [0]
    Когда приложение запускается из под среды при возникновении исключения всплывает окно отладчика с информацией об исключении:

    http://s2.ipicture.ru/uploads/090119/1X925CUaU7.jpg
    (зеркало): http://s47.radikal.ru/i117/0901/b1/0db2c8b51aa2.jpg

    И получается забавно в случае с приложением, которое развернуто на весь экран поверх всех окон.

    С одной стороны во время наступления исключения отладчик тормозит выполняющиеся потоки до момента закрытия этого диалогового окна и приказа продолжить выполнение. С другой стороны, этого всплывающего диалога из под приложения "поверх всех окон" просто не видно. В результате все висит и нихрена не сделаешь (

    Как можно отключить выдачу данного окошка при выполнении определенных строк кода?

    Я сразу отмечу, что не хочу в принципе отключать данное всплывающее окно отладчика. Также я не хочу убирать реагирование на данный тип исключения. Просто чтобы на определенных строках кода данное окошко не всплывало, но исключение отрабатывалось операторами try..except в рантайме.
  • Leonid Troyanovsky © (19.01.09 19:41) [1]

    > Добежал   (19.01.09 19:34)  

    > Я сразу отмечу, что не хочу в принципе отключать данное
    > всплывающее окно отладчика. Также я не хочу убирать реагирование
    > на данный тип исключения.

    Убери на весь экран поверх всех.
    Все равно, оно лишнее.

    --
    Regards, LVT.
  • Добежал (20.01.09 11:54) [2]
    Нравится мне этот форум. Люди понятия не имеют о задачах, но все равно думаю что они умнее всех и лучше автора знают что ему надо.

    --
    Regards, Pit.
  • Добежал (20.01.09 14:18) [3]
    Блин, судя по молчанию здесь, по отзывам знающих людей проблема просто не имеет решения впрямую.
  • AndreyV © (20.01.09 14:26) [4]
    > [3] Добежал   (20.01.09 14:18)
    > Блин, судя по молчанию здесь, по отзывам знающих людей проблема
    > просто не имеет решения впрямую.

    Желание странное. Запускай не из среды.
  • Jack128_ (20.01.09 14:34) [5]

    > Желание странное. Запускай не из среды.

    иногда бывает желание забить на исключения в функции А, но обращать внимание на исключения в функции Б.
  • Leonid Troyanovsky © (20.01.09 15:13) [6]

    > Добежал   (20.01.09 11:54) [2]

    > но все равно думаю что они умнее всех и лучше автора знают
    > что ему надо.

    Я тоже так думаю.
    Это ж надо - "развернуто на весь экран поверх всех".
    Эмуляция десктопа, млин.

    --
    Regards, LVT.
  • Юрий Зотов © (20.01.09 15:35) [7]
    На время отладки - почему бы действительно не отключить "поверх всех"?
    После отладки - включить обратно.
  • Добежал (20.01.09 15:39) [8]

    > Это ж надо - "развернуто на весь экран поверх всех".
    > Эмуляция десктопа, млин

    а как по-твоему платежные терминалы работают?


    > На время отладки - почему бы действительно не отключить
    > "поверх всех"?

    ну так и делаю. Вопрос только как определять, что запущено из под среды. Выбрал способ с isDebuggerPresent.
  • test (20.01.09 15:48) [9]
    Добежал   (20.01.09 15:39) [8]
    Ты когда сдавать будеш тогда включи, зачем тебе во время отладки/написания лишние трудности?
  • Leonid Troyanovsky © (20.01.09 15:49) [10]

    > Добежал   (20.01.09 15:39) [8]

    > > Эмуляция десктопа, млин

    > а как по-твоему платежные терминалы работают?

    Если они работают так, то их надо выкинуть на помойку.

    --
    Regards, LVT.
  • Добежал (20.01.09 15:54) [11]

    > Ты когда сдавать будеш тогда включи, зачем тебе во время
    > отладки/написания лишние трудности?

    мне то все равно. Но если другой человек вдруг из под среды запустить приложение и там в настройках будет стоять не дебаг режим - то он натолкнется на глюк такой. Я лично очень не сразу понял что за нафиг.


    > Если они работают так, то их надо выкинуть на помойку.

    а как надо работать?
  • Leonid Troyanovsky © (20.01.09 15:58) [12]

    > Добежал   (20.01.09 15:54) [11]

    > а как надо работать?

    Например, на отдельном десктопе.

    --
    Regards, LVT.
  • Кто б сомневался © (20.01.09 16:01) [13]

    > Как можно отключить выдачу данного окошка при выполнении
    > определенных строк кода?


    Те. нужно отключить выдачу определенного исеключения во время работы в среде.
    ну так делай собственный тип исключения, и добавляй его в Debugger Options >> language Exception.
  • Добежал (20.01.09 16:35) [14]

    > Например, на отдельном десктопе.

    а можно поподробнее: какие при этом будут преимущества, как создавать десктоп, как выводить его на активный экран?

    Например, если к компьютеру подключено два монитора, то при обычном запуске можно управлять, перетащить на каком мониторе будет отображаться, если делать на отдельном десктопе возможно ли это будет делать, насколько просто?


    > ну так делай собственный тип исключения, и добавляй его
    > в Debugger Options >> language Exception.

    были мысли... Но в общем проблема решена с помощью isDebuggerPresent
  • ketmar © (20.01.09 17:02) [15]
    >[14] Добежал (2009-01-20 16:35:00)
    а чего, на msdn перманентный бан?

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (20.01.09 17:27) [16]
    перманентная нехватка времени. Не могу себе позволить изучать там что-то (тем более долго, а пока не знаю - не имею представления долго ли), чтобы потом понять, что мне это не подходит.
  • ketmar © (20.01.09 17:45) [17]
    >[16] Добежал (2009-01-20 17:27:00)
    >перманентная нехватка времени. Не могу себе позволить изучать там что-то

    нивапрос. проконсультирую. за деньги, натурально. потому что мы, знаешь ли, тоже не дети Ротшильдов, и время своё драгоценное таки тратили на изучение. а ты хочешь, чтобы тебе теперь бесплатно всё разжевали и ещё запить поднесли. нет пути.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Leonid Troyanovsky © (20.01.09 17:50) [18]

    > Добежал   (20.01.09 16:35) [14]


    program Project1;

    uses
     Forms,
     Windows,
     Unit1 in 'Unit1.pas' {Form1};

    {$R *.RES}

    var
     NewDesktop, thisdesktop : HDESK;

    begin
     thisdesktop := GetThreadDesktop(GetCurrentThreadId);
     Application.Free;
     NewDesktop := CreateDesktop( 'MyDeskTop', nil, nil, 0,
                                   GENERIC_ALL, nil );
     SetThreadDesktop( NewDesktop );
     Application := TApplication.Create(nil);
     SwitchDesktop( NewDesktop );

     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
     Application.Run;

     SetThreadDesktop( thisDesktop );
     SwitchDesktop( thisDesktop );
     CloseDesktop( NewDesktop );
    end.



    > Добежал   (20.01.09 17:27) [16]

    > перманентная нехватка времени

    У нас этого времени - вагон.
    Везде успевает тот, кто никуда не торопится.

    --
    Regards, LVT.
  • Leonid Troyanovsky © (20.01.09 18:02) [19]

    > ketmar ©   (20.01.09 17:45) [17]

    >  нет пути.

    А, это был воспитательный прием.
    Sorry.

    --
    Regards, LVT.
 
Конференция "Прочее" » Подавления окна отладчика "Debugger Exception Notification"
Есть новые Нет новых   [134453   +34][b:0][p:0.002]