Not a kernel guy

… in the Windows kernel team

Sunday, March 23, 2008

Process Monitor научился трассировать 32-х битный стек на x64.

Я как-то привык, что Process Monitor не умеет показывать 32-х битный стек события, которое произошло в 32-х разрядном процессе, выполняющемся под Wow64. Вместо этого он показывал только 64-х битный стек, что было абсолютно бесполезно, так как там по определению всегда светится wow64.dll сотоварищи. Однако после подсказки на Sysinternals Forums выяснилось, что начиная с Vista SP1 это уже работает.

Подтверждаю, действительно работает:

Process Monitor shows Wow64 symbols.

Конфигурация:

  • Vista SP1 (6001.18000.amd64fre.longhorn_rtm.080118-1840)
  • Process Monitor v1.26
  • Debugging Tools for x64 v6.8.4.0

Process Monitor использует dbghelp.dll из состава Debugging Tools. Используются символы с http://msdl.microsoft.com/download/symbols.

Кстати, показанный порядок вызовов не совсем верный. На самом деле весь 32-х битный код (строки 19-26) должен быть между 13-ой и 14-ой строками. Но тут порядок зависит от того, как его выдают Rtl функции из ntdll.dll, а они, насколько я понимаю, не затрудняются формированием правильного порядка вызовов. Просто сначала трассируется 64-х битный стек, а затем – 32-х битный.

Posted at 9:46 pm •

RSS feed | Trackback URI

3 Comments »

[...] from blog.not-a-kernel-guy.com. Published Monday, March 24, 2008 6:49 AM by alexeypa Filed under: Отладка, [...]

 
Comment by Anthony — July 2, 2008 @ 5:01 am

а как насчет XP/2003 x64 SP2? их-то “починят”?

Comment by Not a kernel guy — July 2, 2008 @ 9:08 am

Сомневаюсь. Это довольно чуствительная к изменениям часть системы. Велик риск что-то поломать в процессе правки. Соответственно, нужна очень серьезная причина для выпуска исправления. Например, обнаружение уязвимости, позволяющей выполнить произвольный код, причем эта ошибка должна быть завязана именно на невозвожность трассировать 32-х битный стек.

 
 

Your Comment (smaller | larger)

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress