Omniscient Debugging

Debugger dla aplikacji napisanych w Javie

What if your debugger could go „go backwards in time?” Would that make debugging easier? By simply recording all variable assignments, it is possible to do essentially this. This is the underlying idea for omniscient debugging. The amazing part is that significantly large programs can be debugged in this fashion — Ant, JUnit, the debugger itself.

http://www.lambdacs.com/debugger/

Wpływ podkręcenia CPU na kod aplikacji

Jest to bardzo stary artykuł z bloga Raymonda Chena, opisuje on jednak ciekawa historię wysypywania się aplikacji na instrukcji xor eax, eax co jak każdy koder assemblera wie jest praktycznie niemożliwe.

http://blogs.msdn.com/oldnewthing/archive/2005/04/12/407562.aspx

W swoim życiu spotkałem się raz z podobną sytuacją, gdzie u klienta w mojej aplikacji był wykonywany kod, który po prostu nie mógł być wykonywany, a próby reprodukcji buga spełzały na niczym.

Okazało się, że komputer klienta był podkręcony i jedyne wyjaśnienie tej sytuacji pasuje idealnie do opisywanej przez Raymonda Chena historii.

Prolog i epilog kompilatora MinGW GCC/G++

Analiza działania kompilatora MinGW z blogu Gynvaela Coldwinda:

Czy zastanawialiście się kiedyś czemu prosty Hello World skompilowany MinGW GCC do exeka zajmuje 15kb (po strip 5kb), a do obiektu (COFF .o) 0.5kb ? Co takiego kompilator dodaje że 0.5kb rośnie do 15kb/5kb ? Oczywiście prolog (kod wykonywany przed “main”) oraz epilog (kod wykonywany po “main”). Dzisiejszy post poświęcę temu co prolog i epilog MinGW GCC robi ;>

Więcej na stronie:

http://gynvael.uw-blog.org/?p=6