Про OutputDebugString.
Тут интересная дискуссия про “неработающую” OutputDebugString завязялась в комментариях, если кто пропустил. Читать вот примерно отсюда: http://blog.not-a-kernel-guy.com/2010/07/11/854#comment-15681.
Тут интересная дискуссия про “неработающую” OutputDebugString завязялась в комментариях, если кто пропустил. Читать вот примерно отсюда: http://blog.not-a-kernel-guy.com/2010/07/11/854#comment-15681.
Давно я про отладку не писал. Так вот пошли мы как-то с коллегой на Багов охотится. Вышли мы на двух таких матерых, опытных Багов. Их и помотали они нас…
В очередной раз столкнулся с мифом, что, мол, release сборку невозможно отлаживать, так как символов нет. Значит так! Американцы на Луне были! Тьфу ты. В смысле, символы в release сборке включать: а) можно, б) нужно и в) полезно. Генерация отладочной информации не влияет на оптимизацию кода. Хотите, проверьте сами – сравните ассемблерные листинги с генерацией символов и без. Более того, случаи, когда это не так, однозначно трактуются как ошибки, которые можно смело отправлять в Microsoft. Мне, кстати, и самому было бы интересно посмотреть на тест-кейс воспроизводящий подобную ошибку.
При определённой сноровке, можно отлаживать код прямо из любимого почтового клиента. На днях пришло письмо с вопросом. Некоторое приложение, будучи установленным в каталог отличный от “Program Files”, при запуске вызывало появление окна UAC с требованием повысить привилегии. Приложение работало нормально, в случае, если оно было установлено в “Program Files”. Как такое может быть?
… легко постукивая кувалдой.
Вопрос из почты:
Я пытаюсь приспособить windbg не для отладки, а для реверсинга незнакомых приложений, и постоянно упираюсь в то, что для удобной работы нужны символы, иначе windbg (в юзермоде, конечно) ничем не сильнее того же OllyDbg. Но, я надеюсь, что не все так плохо с этим отладчиком, и это у меня руки кривые.
Мне частенько приходится разбираться с отладкой исключений, произошедших из-за порчи стека или на фоне порчи стека. В таких случаях обычно приходится трассировать стек вручную. Дело это муторное, поэтому я решил написать расширение для WinDbg, несколько облегчающее эту задачу.
Как то заметил, что в списке запущенных процессов постоянно болтается три штуки cdb.exe:

CDB – это консольная версия WinDbg, которая у меня установлена в качестве «посмертного» отладчика (postmortem debugger).Обычно при этом падение приложения не проходит незамеченным – запускается консоль отладчика на весь экран. Трудно не заметить. В данном же случае, по всей видимости, фатальное исключение случалось в привилегированном процессе в отдельной сессии, соответственно и консоль создавалась в другой сессии.
Recent Comments