VC的框架和其他编译器的结构不同,如AXD调试器,你单步执行或进入函数执行一步步的行进过程很清楚,当用VC调式时往往不是这样。单步调着调着就不知踪影了。例如:void CServerSocket::OnReceive(int nErrorCode) 
{
char buff[1024];
int bufflen=1024;
int nLen = CSocket::Receive(buff,bufflen);
m_pParentWnd->PostMessage (WM_UPDATEMSG,(WPARAM)buff,(LPARAM)nLen);
CSocket::OnReceive(nErrorCode);
}PostMessage后照说应该去到DefWindowProc窗口函数进行消息处理的分发。可单步后却是继续执行下面的 CSocket::OnReceive(nErrorCode);然后就跳入sockcore.cpp里执行这个switch (WSAGETSELECTEVENT(lParam)),直到弹出need resouce的DLG或者Disasembly里。
有什么办法可以观察到程序的行进的每个步骤。

解决方案 »

  1.   

    这个是因为有些代码是MFC的,而你没有它的源代码,因而单步会跟到汇编等
    只能自己大概了解流程,多设断点,在自己关心的地方设置断点跟踪过程
      

  2.   

    呵呵`楼上是名人。那多问点`觉得VC好么?科学讲求1是1,2是2,但是VC却很多需要靠猜,靠蒙。蒙的时间长的就会有点感觉,这个东东就称为经验。这样的状态实在很难看好VC平台以后发展前途