如何在vs2013中设置多态类型的条件断点?

时间:2015-01-09 02:42:53

标签: c++ mfc visual-studio-debugging

我有一个多态类型,我需要根据以下内容输出断点消息:

  1. 如果是特定类型和
  2. 如果是该类型,则该类型的成员具有特定值
  3. 如果您感兴趣,断点位于MFC库BOOL CCmdUI::DoUpdate(CCmdTarget* pTarget, BOOL bDisableIfNoHndler)中的cmdtarg.cpp。如果符合条件,我想在调用Enable(bHandler)时输出消息。

    我试图做一个像这样的条件:

    dynamic_cast<className*>(this) ? ((dllName.dll!className*)this)->m_var == target : 0
    

    但是我收到以下错误消息:

      

    无法设置断点。标识符“className”未定义

    这可能是因为className取自dll。所以我改为:

    dynamic_cast<dllName.dll!className*>(this) ? ((dllName.dll!className*)this)->m_var == target : 0
    

    然后我收到此错误消息:

      

    无法设置断点。运行时dyanmic_cast的操作数必须具有多态类类型。

    类型是多态的。我可以看到vtable,它里面有4个虚函数。

    如果它不是我感兴趣的那种类型,那么盲目地将其盲目地导致失败,那我该怎么办?

0 个答案:

没有答案