Last update: April 19, 2008 The last available version can be downloaded here. Don't expect too much, use v1.10 for any serious work. Don't send me requests for features already available in v1.10. Please report only serious bugs and crashes. And, of course, new ideas are always welcome! April 19, 2008 Pre-alpha 5: hit trace! Maybe you have tried to use hit trace in the version 1.10, only to discover that it doesn't work with non-trivial programs. Hit trace in version 2 is different: instead of replacing all recognized commands with INT3, I set breakpoints dynamically on all non-processed branches. It seems that 20-30 thousand breakpoints is not a problem for the new debugger. Also in this release: just-in-time debugging, command line, several bugfixes. Help on command is ready for all non-SSE/non-FPU commands till LEA.
блооо, наконец то он сделал что то с настройками! added: ммм.. это божественно! ¦) пока проблемы с изменением цветовой схемы(не применяются настройки), но, думаю, заставлю работать как надо) заинтриговали, хочу финалку)
очередной апдейт Last update: May 8, 2008 Improved and bug-fixed debugging engine. Help on all 8086 commands, except for string manipulations. http://ollydbg.de/odbg200f.zip
May 24, 2008 очередное обновление http://www.ollydbg.de/odbg200g.zip Internal emulation of simple commands (Options|Run trace|Allow fast command emulation) has made run and hit trace 15 (fifteen!) times faster. On my Athlon 4000+, standard run trace executes 35000 commands per second. With the emulation on, OllyDbg traces 500000 commands! For simple programs, this may be close to the real-time execution - in the step-by-step mode, with the full protocolling. Emulation covers only the small subset of 80x86 commands - moves, PUSH/POP, arithmetical and boolean operations, comparisons, shifts, jumps, calls, returns and LEAs. No multiplications, prefixes, loops or string operations, no FPU or MMX; still, OllyDbg passes to the application less than two percents of commands. Frequently one uses run trace together with the run trace condition, like: "stop trace when EAX==0x123456". Up to now, the inetrpreter parsed conditional expression on each step. However, this was too slow for the accelerated trace. Now I compile expressions to the simple pseudocode and use a very quick interpreter to estimate the condition. As a result, the above comparison is processed in only 130 nanoseconds. Not bad! Oh yes, and command help now includes the string commands, too.
Asterix Я что-то не понимаю, зачем отладчику эмулятор? На практике, не помню что-бы что-то вроде "stop trace when EAX==0x123456" пригодилось. Условные бряки в windbg, безусловно, очень полезны. Но чтобы эмулятор, тем более не совершенный ... людям то что нужно?
selflessa наверно у вас маленькая практика на форумах часто встречал вопросы как брякнуться когда в регистре то то и то то.
Хочу предложить автору Олли следующую инновационную (как мне кажется) идею: Сворачивание инструкций ==================== Есть набор инструкций. Мы знаем, что это определенный кусок кода, делающий конкретное действие. При пошаговой отладке очень удобно было бы свернуть эти пять (к примеру) инструкции в одну - выделяем нужные инструкции, жмем "Свернуть", и называем участок каким-нибудь именем. При этом Олли должна ставить бряк в тех местах, где может быть переход (т.е. анализируя адреса переходов в сворачиваемом куске). На примере: Код (Text): 0041076F |> C1C8 07 ||/ROR EAX,7 00410772 |. 310424 |||XOR DWORD PTR SS:[ESP],EAX 00410775 |. AC |||LODS BYTE PTR DS:[ESI] 00410776 |. 84C0 |||TEST AL,AL 00410778 |.^75 F5 ||\JNZ SHORT ldr.0041076F бряк должен быть поставлен по адресу 0041077Ah и по адресу 0041076Fh. Соответственно при трасировке этого свернутого участка не нужно муторно трассировать один и тот же кусок - мы знаем что это и свернули в как бы одну инструкцию. Кто что думает?
что это ещё за стандартный прогон? по идее, эмуль замедляет трассировку кода или идёт сравнение с предыдущими версиями эмуля?
O_Щ Отличная новость. + UbIvItS Насколько я знаю, это первая версия с эмулятором. Такой шокирующий прирост производительности получается из-за того, что при эмуляции получаем освобождение от бесконечных и дорогих переключений контекста. Наверное.
подскажите новичку, для моих простых целей, там оконное приложение простенькое отладить или еще что - уже можно на 2ку переходить или пока еще рано?
вышел первый бета релиз, встречайте http://ollydbg.de/version2.html http://ollydbg.de/odbg200i.zip The first beta release. "Beta" means that there will be no significant changes till the final v2.00. Now it supports memory and hardware breakpoints. They are fully conditional, and the number of memory breakpoints is unlimited. Fast command emulation takes memory breakpoints into account. In fact, run trace may be much faster than the full-speed run if the number of false access violations is high. Active hardware breakpoints turn emulation off, but this may change in the future. SSE registers are fully supported. OllyDbg understands all command set extentions up to SSE4. AMD's SSE5 is not supported, but as far as I know, there are no SSE5-capable processors yet. Help on command covers all FPU commands. Help on some registers and bits is also available. Autoupdate of dump windows may also be useful.
Version 2.0 - Beta 2 Final (updated 03-December-2009) http://ollydbg.de/odbg200k.zip Please read it carefully before complaining: 1. OllyDbg 2.0 is rewritten from scratch. 2. No, plugins are not yet implemented. 3. Yes, they will be implemented again - presumably in v2.02. The last beta, with rudimentary help (and I hope to improve it in the release). The only really new feature (commented out in the second beta) is debugging of child processes. Other modifications are evolutional: much more stable (and tricky) debugging engine, more known functions, more or less consistent support for UNICODE and UTF8 in dialogs and comments, many bugfixes. Please check this version thoroughly and don't forget to report all errors, including grammatical. The release will follow soon!