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