我爱Aspx >> Asp.Net >> 调试分布式 Web 应用程序 (3)char* pszTemp = (char*) malloc(strlen("BOMB THIS")); strcpy(pszTemp,"BOMB THIS"); 在本例中,用户分配 9 个字节的内存,但没有包含 NULL 的结束符("\0")。当试图向此内存位置复制字符串时,因为函数试图访问所分配的内存段以外的部分,就会产生错误。 另一个方案试图访问一个非法的内存位置。 例如:FunctionA() { m_pAV = NULL; FunctionB(m_pAV); } FunctionB(CAccessViolate* pAV) { pAV->BombThis(); } 在本例中,FunctionB 使用传递给它的 pAV 指针而未检查其合法性,从而导致访问冲突。 大多数访问冲突发生在当 ASP 页试图访问一个组件,而这个组件又正在试图做错误的事情时。为简单起见,我们假定您已将某个组件安装为库程序包。当您试图访问使用这个组件的一个 ASP 页时,ASP 页可能返回以下信息: error 'ASP 0115'Unexpected error/<Web Server Name>/<ASP file name>.aspA trappable error occurred in an external object. The script cannot continue running.
这个错误消息指出在某个特定的 ASP 页中有一个错误,它是由在某个外部对象中产生一个异常引起的。它表明您试图在 ASP 页中访问一个失败的组件。您可以这样来进一步隔离问题,在 ASP 页中删除对任何组件的所有引用,然后再逐个将它们添加进来,直到找到故障原因为止。
如果隔离的过程过于冗长乏味,或者您没有获得一个指明 ASP 页名的清晰错误信息,则可以将 WinDBG、User Mode Process Dump 或 IIS Exception Monitor 连接到 inetinfo,并开始调试。
找出引起访问冲突的代码行 假定您已使用 User Mode Process Dump 工具连接到 inetinfo 进程,并创建了一个转储文件。现在开始在 WinDBG 中检查转储文件,并尽力勾画出所发生的事情。 在 WinDBG 中打开故障转储文件,在 View 菜单中,单击 Call Stack 。
图 4. 显示堆栈的 Windows 调试程序对话框
Ҷƪл˵?
调试分布式 Web 应用程序 (2)[05-05]
asp.net开发web项目-vss集成环境..[05-05]
通过Web Services上传和下载文件[05-05]
动网论坛7.0获得WebShell的分析[05-01]
WEB标准[05-01]
WEBS上自动下载控件的实现方法[05-01]
使用Web标准建站校验及常见错误[05-01]
用IIS建立高安全性Web服务器[05-01]
Windows IIS WEB服务器配置安全规..[05-01]
Creative Weblogging的网谈的攻击[05-01]
调试分布式 Web 应用程序 (2)[05-05]
如何在Delphi中实现ASP编程[05-05]
巧用Delphi制作溅射屏幕[05-05]
电脑游戏中的人工智能制作[05-05]
C#抢鲜快报之FAQ20[05-05]
如何得到本机的ip地址![05-05]
移动没有标题的窗体[05-05]
在状态栏中加入BitMap[05-05]
在菜单中加入图标[05-05]
微软公司软件开发模式简介[05-05]