none
Не работает DefaultTraceListener (DbgView ничего не получает) RRS feed

  • Вопрос

  • Добрый день!

    Не могу понять, что за беда. На другом компе с DefaultTraceListener проблем не было, все дебажные строки исправно сыпал в DbgView. Сейчас сижу за компом с правами админскими, но какими-то урезанными, DbgView не может выполнить команду Capture Global Win32. Но при этом что-то перехватывает.

    На скриншоте 1 показано, как я пытался с помощью DefaultTraceListener вывести хоть что-нибудь. Не вывелось ничего из того, что я просил, но после строки            

    Trace.Listeners.Clear();

    в дбгВью высыпалась цепочка вызовов стека. Строк "Info", "Warn", "Error" и "DefaultTraceListener" не выводилось никогда.

    Пробовал менять Trace.UseGlobalLock, вызывал Trace.Refresh(), вставлял новый DefaultTraceListener вместо дефолтного - нет реакции.

    При нажатии "Capture Global Win32" в DbgView вываливается месседжбокс с ошибкой (скрин 3).

    При этом в окне Output всё в порядке:

    RioClient.vshost.exe Error: 0 : Error
    RioClient.vshost.exe Information: 0 : Info
    RioClient.vshost.exe Warning: 0 : Warn
    DefaultTraceListener

    Ну и собственно вопрос - как мне выводить что-то в DbgView? Сам как таковой вывод возможен, раз стек при ошибке туда сыплется.

    Заранее спасибо.



    • Изменено SvarogichRed 29 ноября 2016 г. 4:42
    29 ноября 2016 г. 3:49

Ответы

  • Оказывается, вопрос был в самой студии, а не в админских правах. Если мое приложение запускать напрямую из проводника, то все нормально в дбгВью сыплется. А под студией сообщения перехватываются. Гм, ну буду знать теперь.

    Спасибо!

    • Помечено в качестве ответа SvarogichRed 30 ноября 2016 г. 11:06
    30 ноября 2016 г. 11:06

Все ответы

  • Сейчас сижу за компом с правами админскими, но какими-то урезанными

    Про "Контроль учетных записей" слышали? "Админские" права пользователя еще не гарантируют полной свободы программ, запущенных от имени этого пользователя. Полную свободу получают программы, запущенные "от имени Администратора".

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    29 ноября 2016 г. 20:08
  • Это да. Но эти права я сам повысить не могу, а дебажный вывод смотреть надо. И, повторюсь, студия как таковая (отладчик) в Debug Output что-то писать может - не только содержимое стека при ошибке, но и странные записи при редактировании значений свойств в окне Watches:

    [13200] no completion session yet and this is a trigger char, starting model computation. 
    [13200] Entered completion command handler for typechar. 
    [13200] we have a completion session. 

    (из DebugView)

    Возможно, есть другие способы писать в Win32 debug output, не через класс Trace?

    • Изменено SvarogichRed 30 ноября 2016 г. 2:21
    30 ноября 2016 г. 2:19
  • Но эти права я сам повысить не могу...

    Возможно, есть другие способы писать в Win32 debug output, не через класс Trace?

    Запуск DbgView выполняйте нажатием правой кнопки мыши и выбором в контекстном меню команды "Запустить от имени администратора". Если у текущего пользователя действительно есть админские права, все должно получиться.

    Вывод в Win32 debug output осуществляет функция WinAPI OutputDebugString. Все остальные средства так или иначе используют ее.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    30 ноября 2016 г. 7:14
  • Оказывается, вопрос был в самой студии, а не в админских правах. Если мое приложение запускать напрямую из проводника, то все нормально в дбгВью сыплется. А под студией сообщения перехватываются. Гм, ну буду знать теперь.

    Спасибо!

    • Помечено в качестве ответа SvarogichRed 30 ноября 2016 г. 11:06
    30 ноября 2016 г. 11:06
  • Они перехватываются отладчиком, а не студией. Запуск приложения из студии командой "Запуск без отладки" также должен выводить отладочные сообщения во "внешний слушатель".

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    30 ноября 2016 г. 11:11