• MSVC中的"pseudo register"调试技术


        如果我写windows程序,并且用MSVC调试程序,那么通常我都会在Debug 的Watch window中保留一个这样的监视项 "@err,hr" .可以即时的显示当前的GetLastError值已经对应的字符串解释.非常的好用. 这个东西我一直都当做是vc的一个技巧来使用(也不记得是怎么学来的,好像是看某人调试的时候偷学的). 并没有继续寻找其它类似的监视项.今天突然心血来潮,在网上找了找,又有收获^_^

    整的假寄存器列表:
     
    @ERR
     最后错误值; 和GetLastError() API 函数一致
     
    @TIB
     当前线程信息; 在调试器无法处理”FS:0”格式的时候是必要的
     
    @CLK
     未列入文档的寄存器; 只是在Watch窗口适用
     
    @EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL
     Intel CPU 寄存器
     
    @CS, @DS, @ES, @SS, @FS, @GS
     Intel CPU 段寄存器
     
    @ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7
     Intel CPU 浮点寄存器
     
    其中@TIB很有用,可以用在多线程调试的时候作为断点的条件变量.这样就可以只观察一个线程的执行情况.

  • 相关阅读:
    vue框架,后端框架选型
    appium,元素定位和元素操作,使用uiautomatorviewer
    appium,参数化,数据驱动
    Qt 应用程序无法正常启动0xc000007b
    NOI2021 游记
    NOI 2021 游记
    NOI2021 看台风记
    NOI2021 部分题目题解
    NOI2021游记
    vectorized case branch
  • 原文地址:https://www.cnblogs.com/waterflier/p/456570.html
Copyright © 2020-2023  润新知