我已经晕了,100分求解,不够就另外开贴给分 一个程序的release版本,在开发环境下按F5启动则一切正常,双击图标启动则出现内存异常(提示信息为:×××指令引用的×××内存,该内存不能为"read")。请问如何调试此类错误? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ×××指令引用的×××内存?结合生成的.map文件就可以找出出现问题的代码大致在什么位置。 debug版本在内存分配的时候会先帮你清空,但是release不会,我们也遇到这样的问题,细心调试一下就可以解决,告诉你个诀窍,你可以把relase版本变成可调试的relase版本,这样好多问题都能很方便的解决 对,估计可能是工作目录的影响, ide中默认工作目录是与makefile同一级目录的, 但是release的exe则有多了一层release目录。 都不是楼上说的这些情况。我确实是打开一个数据文件并对文件进行操作,数据打开是没有问题的,因为脱离开发环境,程序依然能够计算一部分数据。问题是数据未计算完毕就出错了。我的开发环境是vc.net 2003,程序编译为带调试信息的。 不单是release版本会独立启动出错,debug版本独立启动也出这样的错误。我查到是数组越界错误,但是对数组操作的代码再三检查都没发现错误。我尝试在可能出错的附近加入记录运行状态的日志文件代码,这样就没有任何错误了,怪。 会不会是数组定义的问题,定义了 int a[3],然后使用了a[3] = 3???猜测,尽尽是猜测! Rebuild出错之后再调试,看是那里的问题 方法提供:1用release调试。2生成TXT文件的方式去看断在哪个函数部分。3、用微软的DEBUG调试库加进去。就可以知道是哪一行了。(这个估计你弄不出来。麻烦。要下载环境包。) 请问vc2003如何设置生成.map文件? 项目-->...属性-->链接器-->调试-->生成映射文件-->是(/MAP) VS2008如何修复由于停电乱码的CPP文件? 为什么wsastartup始终报错,而且错误代码不是msdn里提到的哪些 如何将POSITION类型的变量转为int型? 怎样在DBGrid的非绑定模式下编程? SOCKET api( send ) 及mfc封装后的 Send的不一样, DLL传递函数指针问题! 急!!! 如何得到当前进程(process)的HANDLE ??? 菜单美观 Win7模拟CtrlAltDelete失败 问一个小问题。 请教大家个问题:怎么实现一个能在整个桌面上浮动的视图(CView子类)? 怎样才能回调PreTranslateMessage方法?(在线等)
我的开发环境是vc.net 2003,程序编译为带调试信息的。
出错之后再调试,看是那里的问题
2生成TXT文件的方式去看断在哪个函数部分。
3、用微软的DEBUG调试库加进去。就可以知道是哪一行了。(这个估计你弄不出来。麻烦。要下载环境包。)