我的程序出现了上诉的问题,我该如何调试,确定出错的地点?
非常感谢,急!

解决方案 »

  1.   

    内存访问违则导致的未处理异常。在调试器中运行,看一下调用堆栈。
    或写代码处理未处理异常,在其中用StackWalk/debughelp函数得到堆栈堆栈或下断点,看调用堆栈。
      

  2.   

    unhandled exception in xx.exe 0xc0000005 access violation ,后面一般会给出具体的指令地址,结合.map文件,也可以定位源代码。
      

  3.   

    有这样的情况:
    lpData0已经被付值。lpData1 = new BYTE[ SZIE ];
    memcpy(lpData1,lpData0,size);....if(lpData1 != NULL)
        delete[] lpData1 ;  /// 这里会不会同时删除lpData0 的数据?
                       // 如果只想删除lpData1 的数据该怎么处理?lpData2 = new BYTE[size];
    memcpy(lpData2,lpData1,size);
      

  4.   

    memcpy(lpData2,lpData1,size);?lpData1?
      

  5.   

    由于这个问题是不定期的,不知道什么时候会发生。
    单步调试可能难确定问题的位置。to DentistryDoctor(牙医的目标是没有蛀牙):.map 文件在哪里? 
      

  6.   

    抱歉写错了~~
    有这样的情况:
    lpData0已经被付值。lpData1 = new BYTE[ SZIE ];
    memcpy(lpData1,lpData0,size);    ....if(lpData1 != NULL)
    {
       if(lpData2 != NULL)
               delete[] lpData2; 
        lpData2 = new BYTE[SIZE];
        memcpy(lpData2,lpData1,size);
    }
        
    delete[] lpData1 ;  /// 这里会不会同时删除lpData0 的数据?
                       // 如果只想删除lpData1 的数据该怎么处理?