出现Loaded 'C:\WINDOWS\system32\ntdll.dll', no matching symbolic information found

jfh569455860 2009-11-17 02:47:24
我用VC编写程序时出现了下面的错误,请问怎么解决啊??
Loaded 'C:\WINDOWS\system32\ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\winmm.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\secur32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\DS40xxSDK.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ddraw.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\dciman32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\netapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\wsock32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ws2_32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ws2help.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\winspool.drv', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\setupapi.dll', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\system32\MFC42D.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MSVCRTD.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MFCO42D.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MFCN42D.DLL'
Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\mfc42loc.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\uxtheme.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\MSCTF.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msctfime.ime', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\wintrust.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\crypt32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msasn1.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\imagehlp.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\apphelp.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
The thread 0xE34 has exited with code -1073741819 (0xC0000005).
The thread 0xBE8 has exited with code -1073741819 (0xC0000005).
The thread 0xAB0 has exited with code -1073741819 (0xC0000005).
The thread 0x958 has exited with code -1073741819 (0xC0000005).
...全文
39189 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao_qin12 2012-07-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20061017/12/5088055.html
glowd 2012-03-06
  • 打赏
  • 举报
回复
我也想知道啊!
tiankong90 2011-12-28
  • 打赏
  • 举报
回复
是啊。。官方是什么方法?????
tjuwanderer 2011-12-20
  • 打赏
  • 举报
回复
官方方法是什么????
[Quote=引用 25 楼 xukaiming 的回复:]
嗯,我弄好了.按官方提示弄的,谢谢了
[/Quote]
笑掠残月 2011-11-23
  • 打赏
  • 举报
回复
怎么弄的呀?不明白?我的也VC++6.0,也出现这种问题
。。。。。。
xukaiming 2011-11-04
  • 打赏
  • 举报
回复
嗯,我弄好了.按官方提示弄的,谢谢了
suliang123qw 2011-09-21
  • 打赏
  • 举报
回复
直接ctrl+F5运行就可以了
junjie_junjie 2011-08-03
  • 打赏
  • 举报
回复
同样的问题,求解
ajim1000 2011-06-29
  • 打赏
  • 举报
回复
解决办法很麻烦啊 不过还是弄了
ajim1000 2011-06-29
  • 打赏
  • 举报
回复
删除debug目录下的文件后也没提示 嘿嘿
ajim1000 2011-06-29
  • 打赏
  • 举报
回复
vc++6.0
1.提示
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0xE04 has exited with code 288 (0x120).
The program 'E:\vc\Debug\f转c1.exe' has exited with code 288 (0x120).
2.出现的原因
#include <stdio.h>
/*打印0-300内华氏温度转摄氏温
度对照表*/

main()
{

float fahr, celsius;
int lower, upper, step;

lower = 0; /*温度表的下限*/
upper = 300; /*温度表的上限*/
step = 20; /*步长*/


fahr = lower;
while (fahr <= upper) {
celsius= 5.0 /9.0 * (fahr-32.0) ;
printf("%3.0f\t%6.1f\n", fahr ,celsius);/*这行一改大有效数字成printf(%3.0f\t%6.2f\n",fahr,celsius)就报错,改成%7.2f又好了,以此类推*/
fahr = fahr + step;
}
}
pravat 2011-06-26
  • 打赏
  • 举报
回复
我的程序在运行MFC时编译也出现那种错误,把MFC关了,再编译没问题了[
白发悲花落 2011-05-02
  • 打赏
  • 举报
回复
各位高手,请问到底该怎么解决啊?
野男孩 2011-04-02
  • 打赏
  • 举报
回复
这个是怎么回事??怎么最后一个回帖是2010-12-01 21:56:18 ?????

我穿越了??
快乐的小菜鸟 2010-12-01
  • 打赏
  • 举报
回复
考古学家是个什么概念?
kumanong 2010-11-08
  • 打赏
  • 举报
回复
有没有解决的?我也遇到了这种问题。
野男孩 2010-10-08
  • 打赏
  • 举报
回复
考古学家们,辛苦啦。。。
guoln1010 2010-10-07
  • 打赏
  • 举报
回复
有没有解决的?我也没整明白
liufang8318 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tr0j4n 的回复:]
只是没有符号包罢了,在你的IDE里面设置下符号包路径,都去掉就行了
[/Quote]您能具体讲下吗?我用的也是vc++6.0,在调试的时候存在这个问题。麻烦您具体讲下如何设置的。
shamozhiwu 2009-12-25
  • 打赏
  • 举报
回复

::首页 >> 文档中心 >> 在线杂志 >> 编译与调试技巧 [ 在线杂志 第50期 ]




 [ 原创文档 本文适合初级读者 已阅读13709次 ] 文档 代码 工具


符号文件——Windows 应用程序调试必备

作者:Generad USam

 

一、何谓符号文件?

  符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中所有的变量信息都记录在这个文件中。所以调试应用程序时,这个文件是非常重要的。用 Visual C++ 和 WinDbg 调试程序时都要用到这个文件。
  在 Windows 系统中,符号文件以 .pdb 为扩展名,比如:每个 Windows 操作系统下有一个 GDI32.dll 文件,编译器在编译该 DLL 的时候会产生一个 GDI32.pdb 文件,一旦你拥有了这个 PDB 文件,那么便可以用它来调试并跟踪到 GDI32.dll 内部。该文件和二进制文件的编译版本密切相关,比如修改了 DLL 的输出函数,再编译该 DLL,那么原先的 PDB 文件就过时了,不能再用老的 PDB 文件来做调试工作,而必须使用最新的 PDB 文件版本。
  Visual C++ 编译代码后会在 Debug 或者 Release 目录下生成一个 PDB 文件。一般情况下,符号文件包括以下的数据信息:

全局变量(Global variables);
局部变量(Local variables);
函数名和它们的入口地址(Function names and the addresses of their entry points);
FPO 数据(Frame Pointer Omission):Frame Pointer 是一种用来在调用堆栈(Call stack)中找到下一个将要被调用的函数的数据结构源代码的行序号(Source-line numbers);
二、如何得到和安装符号文件?

先确定你的操作系统(OS)版本;
到微软网站下载相应的符号文件;
安装符号文件,对于符号文件的安装位置没有特贝要求,可以安装在任何目录中;
设置环境变量,使得调试工具(比如:Visual C++、WinDbg、Ntsd、DrWatson 等)能找到符号文件;
安装符号文件的注意事项:

  如果是手动安装符号文件,有一点很重要,那就是宿主机(Hostt Computer)上的符号文件必须与目标机器(Target Computer)上的 Windows 版本相匹配。
  这里所谓的宿主机指的是运行调试会话的机器,在典型的双系统调试会话环境中,宿主机可以是连接到目标机器的任何机器。目标机器指的是发生软件组件、系统服务、应用程序或操作系统运行失败的机器。也即是需要被调试的机器,它是调试会话关注的焦点。目标机器可以近在咫尺,也可以位于完全不同的地方。有时我们也将目标机器称之为——被调试者(debuggee),那么与之对应,宿主机则可以称为调试者(debugger)。

三、在 Visual C++ 使用符号文件的方法

在 Visual C++ 6.0 中的使用方法:

打开 Visual C++ 6.0 的 Workspace 文件(*.dsw);
进入 Tools 菜单,选择 Options 菜单项 (Tools->Options);
单击 Directoties 标签;
在 “Show directories for”下拉列表中选择 “Executable files”;
将符号文件的路径添加到 “Directories” 路径列表中;
单击 OK 完成;
在 Visual C++ .NET 2003 中的使用方法:

打开 Visual C++ .NET 的项目文件(*.vcproj);
在解决方案管理器中选中要使用符号文件的项目;
单击右键进入项目属性对话框;
选择“配置属性”中的“调试”;
在与“调试”对应的“操作”选项中有一个“符号路径”,在此添加符号文件的路径即可;
单击 “确定” 完成;
四、如何产生 Release 版本二进制文件对应的 PDB 文件?

在 Visual C++ 6.0 中的方法:

打开 Visual C++ 6.0 的 Workspace 文件(*.dsw);
进入 Project 菜单,选择 Settings 菜单项 (Project->Settings),打开项目设置对话框;
在 “Settings for”列表中选择项目的 Release 配置;
单击“C/C++”标签;
在“Category”下拉列表框中选择“General”选项;
在“Debug info”下拉列表框中选择调试信息格式(具体选项参见图一),在此不必禁用任何优化选项;
单击“Link”标签;
在“Category”下拉列表框中选择“Debug”选项;
选中“Debug info”复选框,然后选择需要的链接调试类型(具体选项参见图一);
不要选择“Separate types”复选框;
在“Project options”编辑框的最后添加如下指令:/opt:ref,icf;
重新生成(Rebuild)项目;
在 Visual C++ .NET 2003 中的方法:

打开 Visual C++ .NET 的项目文件(*.vcproj);
进入 Project 菜单,选择 Settings 菜单项 (Project->Settings),打开项目设置对话框;
在 “配置”下拉列表中选择项目的 “(活动)Release” 配置;
选择“配置属性”树型节点中的“C/C++” ==〉“常规”;
设置右边的“调试信息格式”选项(具体选项参见图一);
选择“配置属性”树型节点中的“链接器”==〉“调试”;
设置右边的“生成程序数据库文件”(具体选项参见图一);
选择“配置属性”树型节点中的“链接器”==〉“命令行”;
在“附加选项(D)”编辑框中添加如下指令:/opt:ref,icf;
按“确定”退出;
重新生成(Rebuild)项目;


图一

五、关于 Free Build(也称 Retail Build)和 Checked Build(也称 Debug Build)

每个基于 NT 操作系统有两种不同的程序生成模式,即:

Free Build (或 Retail Build)
Checked Build (或 Debug Build)
  Free Build 生成的是最终用户版本,针对生成的二进制文件进行了彻底的优化,禁用了调试断言,并剥离了调试信息。这样一来使可执行程序文件更小,加载更快,使用的内存也更小。
  Checked Build 生成的是测试和调试版本。它包含额外的 Free Build 所没有的错误检查,参数验证和调试信息,Checked Build 有助于隔离和跟踪可能导致不可预见的行为的问题,比如内存溢出,不正确的设备配置。虽然 Checked Build 提供了额外的保护,但与 Free Build 比较,它需要更多的内存开销和磁盘空间。由于可执行程序包含符号调试信息;调试时要执行附加的代码、参数检查和输出调试诊断信息,从而导致性能下降。

六、系统符号文件的更新方法

  系统符号文件指 Windows 操作系统依赖的那几个重要的 DLL/SYS 和可执行文件对应的符号文件,常见的比如:gdi32.dll、Kernel32.dll、Kerberos.dll、psapi.dll、user32.dll等,使用 WinDbg 调试时,你就会发现系统符号文件(PDB)有多重要,这些文件都与本地的 OS 密切相关,比如,Windows 2000 打了SP补丁的话,那么必须更新系统符号文件才能进行相关调试,原来的符号文件与打补丁后的系统就会不匹配,怎么办呢? 可以通过网络来更新!象下面这样在 WinDbg 的 Symbols Path 里面输入路径:

SRV*D:\Symbols\websymbols*http://msdl.microsoft.com/download/symbols
(斜体部分是你在本地保存符号文件的路径)

  如果你不是通过代理上网,那么在你用 WinDbg 打开一个被调试程序后,输入 symchk 回车,WinDbg 就会自动的连到微软的网站根据你的机器的情况更新的 PDB 文件,并将它保存在上面斜体部分指定的本地路径里,这样你就可以确保你的符号文件版本和你机器上的文件版本一致。

如果你是通过代理上网那么你需要配置 IE 的连接设置。具体方法恕不赘言。
 







最新评论 [发表评论] [文章投稿] 查看所有评论 推荐给好友 打印

好, 太好了! ( 草原独狼 发表于 2009-1-18 1:36:00)

看来大家对于这些调试的技术 使用得还是比较少

我现在的问题是 如何保持 code 和 pdb 同步 ( benjiam 发表于 2008-12-9 9:49:00)

试过了
根本进入不了啊
我已经下载了对应的Debug和Release版本的符号文件了
也分别试过了设置目录
但在VC6下就是不能调试进去啊
( seerxillion 发表于 2007-10-15 11:10:00)

.......................................................
More...



版权所有 © 1999 - 2009 VC知识库

加载更多回复(8)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧