用vs2015调试说打不开或vs2015找不到cl.exepdb

VS2013编程出现了加载找不到PDB文件后加载完项目符号还是有两项不行_百度知道
VS2013编程出现了加载找不到PDB文件后加载完项目符号还是有两项不行
已加载符号;ProgramData\Windows\数据结构\ksfmon:&#92:
已加载“C;Windows\ole32.exe”(Win32).exe”.dll”。“Win32Project2。“Win32Project2。“Win32Project2;Windows\shell32;Windows&#92:\SysWOW64\SysWOW64&#92。已加载符号.dll”:
已加载“C;dwmapi.exe”(Win32):\SysWOW64&#92:&#92:\user32.dll”.dll”:
已加载“C.exe”(Win32);Win32Project2\SysWOW64&#92,返回值为 0 (0x0);Windows\Windows&#92。已加载符号。已加载符号。“Win32Project2。“Win32Project2。“Win32Project2:&#92.exe”(Win32)。“Win32Project2。已加载符号.exe”(Win32);Windows&#92:&#92。“Win32Project2:&#92。“Win32Project2。已加载符号.exe”(Win32);Windows\SysWOW64&#92:&#92。线程 0x2a14 已退出.exe”(Win32):
已加载“C。“Win32Project2;SysWOW64\msvcp120d;SysWOW64&#92。“Win32Project2;SysWOW64&#92:
已加载“C。已加载符号:
已加载“C.exe”(Win32);rpcrt4;SysWOW64\Windows\msctf:
已加载“C。“Win32Project2;Win32Project2;Windows&#92.exe”(Win32);KernelBase:\nsi.exe”(Win32)。“Win32Project2.dll”。“Win32Project2.exe”(Win32);TSVulFW;Windows\SysWOW64\uxtheme。“Win32Project2;Windows\SysWOW64&#92:
已加载“C。已加载符号:
已加载“E。已加载符号;ntdll。已加载符号.dll”.dll”.dll”.exe”(Win32).exe”(Win32);SysWOW64&#92。已加载符号:&#92:
已加载“C。“Win32Project2:&#92.exe”(Win32);SysWOW64&#92:&#92。已加载符号;Tencent\Windows&#92。“Win32Project2:\version.dll”.exe”(Win32):\Windows&#92:&#92.dll”。“Win32Project2。“Win32Project2:
已加载“C。已加载符号;Windows&#92.exe”(Win32)。“Win32Project2。“Win32Project2;SysWOW64&#92.dll”:
已加载“C;Windows&#92:
已加载“C:&#92.dll”。已加载符号;SysWOW64\Windows&#92。已加载符号。“Win32Project2:&#92.dll”。已加载符号:\sspicli.dll”;Windows&#92。“Win32Project2:\Windows&#92.dll”.exe”(Win32)。已加载符号。无法查找或打开 PDB 文件.dll”:
已加载“C;Windows\SysWOW64\ksafe&#92。已加载符号.dll”.exe”(Win32);advapi32:
已加载“C.dll”.exe”(Win32).exe”(Win32);SysWOW64\Windows&#92。已加载符号.DAT”“Win32Project2。已加载符号;gdi32;lpk.dll”.dll”:
已加载“E;msvcrt:\kingsoft antivirus&#92:
已加载“C.dll”.dll”;金山毒霸\SysWOW64\kernel32:
已加载“C;ws2_32。“Win32Project2;SysWOW64&#92.exe”(Win32);SysWOW64&#92:\SysWOW64&#92。“Win32Project2:\Windows&#92.exe”(Win32);Windows&#92.dll”。已加载符号;kwsui.exe”(Win32)。已加载符号.exe”(Win32):
已加载“C.exe”(Win32).exe”(Win32).exe”(Win32)。“Win32Project2;SysWOW64&#92。已加载符号.exe”(Win32);SysWOW64&#92.dll”;msvcr120d:
已加载“C;wtsapi32.exe”(Win32):\Windows&#92。“Win32Project2;Windows&#92:
已加载“C.dll”.dll”:
已加载“C:
已加载“C.dll”。“Win32Project2;oleaut32.dll”。无法查找或打开 PDB 文件:
已加载“C;SysWOW64&#92:
已加载“C。“Win32Project2;SysWOW64&#92.exe”(Win32):\Windows&#92:&#92.dll”。已加载符号;TSVulFw&#92:&#92。已加载符号;SysWOW64\Windows&#92.exe”(Win32);SysWOW64\金山毒霸&#92:
已加载“C。已加载符号:
已加载“C:&#92。已加载符号。已加载符号:&#92:
已加载“C;Debug&#92。“Win32Project2;SysWOW64&#92:&#92:\Windows&#92.dll”。“Win32Project2。已加载符号。已加载符号:
已加载“C:&#92:
已加载“C;imm32:
已加载“C.exe”(Win32);usp10:
您的回答被采纳后将获得:
系统奖励20(财富值+经验值)+难题奖励30(财富值+经验值)
我有更好的答案
pdb是调试文件,加载不上没关系
但是没有输出到东西啊
在你的代码输出部分打断点,看看是否有执行,可能是代码逻辑有问题
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁VS调试C++程序,提示无法启动程序,“....exe”。系统找不到指定文件_蹄间三寻_新浪博客
VS调试C++程序,提示无法启动程序,“....exe”。系统找不到指定文件
VS无法启动程序,“。。。。.exe”。系统找不到指定文件。如图1
图1
​​
修改项目的名称(如图2,在项目名称重命名前面添加“H”)
图2
再调试运行,发现结果如图3
图3
发现1:其后面的exe文件名为项目名称
然后打开菜单栏项目-&属性,如图4
图4
接着打开配置属性-&链接器-&常规-&输出文件,如图5
图5&
然后打开你代码文件夹下的Bin文件夹,文件夹下肯定有NOEMHost.exe的可执行文件,如图6
图6
接着将其删除,如图7
图7
再返回VS,运行程序,然后再次查看文件夹下的Bin文件夹,肯定又生成了NOEMHost.exe的可执行文件,如图6。因此我们发现配置属性-&链接器-&常规-&输出文件的路径及其后面的名称是程序运行生成的exe文件的路径和名称。因此修改其输出文件的名字为项目名称.exe,即HOEMHost.exe,如图8
图8&
再次调试运行,查看结果如图9
图9
这样我们就搞清楚了输出文件的路径和文件名的修改,结合第一点,即图2的提示,找到对应的输出目录,如图10
图10
发现图2运行错误的提示路径很像,我猜想这个路径是告诉VS怎么找到生成的可执行文件,即HOEMHost.exe在哪里,于是修改其路径,改为Bin,如图11。注意不要修改成.\Bin\HOEMHost.exe,这样会在Bin文件夹下生成HOEMHost.exe名称的文件夹。
图11
至此,再次调试运行,成功!
博客等级:
博客积分:0
博客访问:5,842
关注人气:0
荣誉徽章:Visual Studio原生开发的10个调试技巧 - 博客 - 伯乐在线
& Visual Studio原生开发的10个调试技巧
【感谢 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试。】
最近碰巧读了Ivan Shcherbakov写的一篇文章,《》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的整理的一些技巧:
异常中断 | Break on Exception
Watch窗口中的伪变量 | Pseudo-variables in Watch Windows
符号越界后查看堆对象 |
查看数组的值
避免进入不必要的函数
从代码启动调试器 | Launch the debugger from code
在Output窗口打印
隔离内存泄漏
调试发行版 | Debug the Release Build
技巧1: 异常中断
在处理被调用之前,异常发生时可以 启动调试器进行中断,可以让你在异常发生后立即调试程序。操作调用栈便于你去查找异常发生的根本原因。
Vistual Studio允许你去指定想要中断的异常类型或者特殊异常。选择菜单Debug&Exceptions弹出对话框,你可以指定原生的(或者托管的)异常,除了调试器自带的一些默认异常,你还可以添加自己的自定义异常。
下面是一个std::exception 异常抛出时调试器中断的例子。
更多阅读:
技巧2:Watch窗口中的伪变量
Watch窗口或QuickWatch对话框提供一些特定的(调试器可识别的)变量,被称为伪变量。文档包含以下:
$tid—–当前线程的线程ID
$pid——进程ID
$cmdline———-启动程序的命令行字符串
$user———-正在运行程序的账户信息
$registername—–显示寄存器registername 的内容
不管怎么样,关于最后一个错误的伪变量是非常有用的:
$err——–显示最后一个错误的错误码
$err,hr—显示最后一个错误的错误信息
更多阅读:
技巧3:符合越界后查看堆对象
有时候,在调试符号越界后,你还想查看对象的值,这个时候,watch窗口中的变量是被禁用的,不能再查看(也不能更新),尽管对象仍然存在。你如果知道对象的地址,可以继续充分地观察它。你可以将地址转换为该对象类型的指针,放在watch窗中。
下面的例子中,当单步跳出do_foo()之后,_foo不能再被访问。但是,将它的地址转换为foo*后,就可以继续观察这个对象。
技巧4:查看数组的值
如果你在操作一个很大的数组(我们假设至少有几百个元素吧,但是可能更少),在Watch窗口中展开数组,查找一些特定范围内的元素很麻烦,因为你要不停地滚动.如果数组是分配在堆上的话,你甚至不能在watch窗口中展开数组元素.对此,有一个解决办法。你可以使用(array+ &offset&),&count& 去查看从&offset&位置开始的特定范围的&count&元素(当然,这儿的数组是你的实际对象)。如果想查看整个数组,可以简单使用array,&count&.
如果你的数组是在堆上,你可以在watch窗口中将它展开,但是要查看某个特定范围的值,用法稍有不同:((T*) array + &offset&),&count&(注意这种用法对于堆上的多维数组也有效)。但是这种情况下,T是指数组元素的类型。
如果你在用MFC,并使用其中的’array’容器,像 CArray, CDWordArray,CStringArray等等。你当然可以使用同样的过滤方法。除此之外,你必须查看array的m_pData成员,它是保存数据的真实缓存。
技巧5:避免进入不必要的函数
很多时候,你在调试代码时可能会进入到你想跳过的函数,像构造函数,赋值操作或者其他的。其中最困扰我的是CString构造函数。下面是一个例子,当你准备单步执行take_a_string()函数时,首先进入到CString的构造函数。
void take_a_string(CString const &text)
void test_string()
take_a_string(_T(&sample&));
幸运的是可以告诉调试器去跳过哪些方法,类或者整个命名空间。实现它的方法也已经改变了,回到使用VS6的日子,通常是通过autoexp.dat文件来指定的。Vistual Studio 2002改成了使用注册表设置。想要跳过一些函数,你需要在注册表里添加一些值(详情如下):
实际位置取决于你使用的Vistual Studio版本和操作系统平台(x86或x64,因为注册表只能在64位的Windows下浏览)
值的名字是数字,代表规则的优先级;数字越大,优先级越高。
值数据是一个正则表达式的REG_SZ值,用于指定怎样过滤和执行。
为了避免进入任何CString方法,我添加了下面的规则:
有了这个,即使你强制进入上例中的take_a_string(),调试器也会跳过CString的构造函数。
更多阅读:
技巧6:从代码启动调试器 Launch the debugger from code
你可能很少需要将调试器附加到程序中,但你不能在Attach窗口这样做(可能因为中断发生太快而没有捕获到),你也不能一开始就在调试器中启动程序。你可以在程序中产生中断给调试器一个机会通过调用内部的_degbugbreak()来附加。
void break_for_debugging()
__debugbreak();
实际上还有其他的方法来完成,例如触发中断3,但这仅仅适用于x86平台(C++64位不再支持ASM)。另外还有DebugBreak()函数,但它的使用不怎么简便,所以这里推荐使用内部方法。
__asm int 3;
程序运行内部方法时会停止运行,这时你就有机会将调试器附加到该进程。
更多阅读:
技巧7:在output窗口打印
通过调用DebugOutputString可以在调试器的output窗口显示一段特定的文本。如果没有附加的调试器,该函数什么也不做。
更多阅读:
技巧8:隔离内存泄漏
内存泄漏是在原生开发中的一个很重要的问题,要检测内存泄漏是一个很严峻的挑战,尤其是在大型项目中。Vistual Studio可以提供检测内存泄漏的报告,还有其他的一些应用程序(免费的或商业的)也可以帮助你检测内存泄漏.有些情况下,在一些内存分配最终会导致泄漏时,可以使用调试器去中断。但是你必须找到可再现的分配编号(尽管没那么容易)。如果能做到这一点,执行程序时调试器才会中断。
我们来看下面的代码,分配了8个字节,却一直没释放分配的内存。Visual Studio提供了造成内存泄漏的对象的报告,多运行几次,会发现一直是同一个分配编号(341)。
void leak_some_memory()
char* buffer = new char[8];
Dumping objects -&
d:\marius\vc++\debuggingdemos\debuggingdemos.cpp(103) : {341} normal block at 0x00F71F38, 8 bytes long.
& CD CD CD CD CD CD CD CD
Object dump complete.
在一个特定的(可复现的)位置中断的步骤如下:
确定你有足够的关于内存泄漏的报告模式(参考 使用CRT库检测内存泄漏)
多次运行程序直到你能在程序运行结束后的内存泄漏报告里找到一个可复现的分配编号,例如上个例子中的(341)
在程序一开始的地方设置一个断点以便你能够尽早地进行中断。
当最初的中断发生时,watch窗口的Name栏里会显示:{,,msvcr90d.dll}_crtBreakAlloc,在Value栏里写入你想要查找的位置编号
继续调试(F5)
程序执行到指定位置会停止,你可以使用调用栈被指引找到被该位置触发的那段代码。
遵循这些步骤, 在上个例子中,使用分配的编号(341)就可以识别内存泄漏的起因。
技巧9:调试发行版
调试和发布是两个不同的目的。调试配置是用于开发的,而发布配置,顾名思义,是用来作为程序的最终版本,因为它必须严格遵循发布的质量要求,该配置包含优化部分和调试版本的中断调试的设置。而且,有时候,要像调试调试版本一样去调试发行版。要做到这一点,你需要在配置里做一些改变。但是这种情况下,你就不再是在调试发行版,而是调试和发行的混合版。
你还应该做一些事儿,以下是必须要做的:
配置C/C++ &General&Debug Information Format 应该为 “Program Database(/Zi)”
配置C/C++ &Optimization&Optimization 应该为”Disabld(/Od)”
配置Linker&Debugging&Generate Debug Info 应该为”Yes/(DEBUG)”
如图所示:
更多阅读:
技巧10:远程调试
另一个重要的调试就是远程调试,这是一个更大的话题,多次被提到,这里我只做一下简单的概括:
你需要在远程机器上安装远程调试监控
远程调试监控必须以管理员身份运行,并且用户必须属于管理员组
在你运行监控时,会开启一个新的服务,该服务的名字必须用Visual Studio的Attach to Progress窗口的Qualifier组合框的值。
远程和本地机器上的防火墙必须允许Visual Studio和远程调试监控之间能够通信
想要调试,PDB文件是关键;为了能够让VisualStudio自动加载它们,必须满足以下条件:
1)本地的PDB文件必须可用(在远程机器的相同路径下放置一个对应的模块)。
2) 远程机器上的托管PDB文化必须可用。
远程调试监控下载:
更多阅读:
Ivan Shcherbakov那篇文章和我这篇文章提到的调试技巧,在大多数的调试问题中都是必不可少的。想要知道更多的关于调试技巧的知识,建议阅读文章中提供的额外阅读。
关于作者:
可能感兴趣的话题
o 119 回复
最新评论(期待您也参与评论)
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线博客团队正试图以我们微薄的力量,把优秀的原创/译文分享给读者,做一个小而精的精选博客,为“快餐”添加一些“营养”元素。
新浪微博:
微信号:Jobbole
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选博客文章
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2015 伯乐在线
赞助云主机查看: 996|回复: 3
opencv win8 64位 vs2013 配置成功,调试也过了就是运行出错
“text.exe”(Win32):&&已加载“D:\document\Visual Studio 2013\Projects\text\x64\Debug\text.exe”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\kernel32.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\KernelBase.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\opencv_core248d.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\opencv_highgui248d.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msvcp120d.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msvcr120d.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\user32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\gdi32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\ole32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\oleaut32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\advapi32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\WinSxS\amd64_mon-controls_ccf1df_5.82._none_75a40c\comctl32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msvfw32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\avifil32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\avicap32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\combase.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msvcrt.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\rpcrt4.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\sechost.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\winmm.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\shell32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msacm32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\version.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\winmmbase.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\shlwapi.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\cfgmgr32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\devobj.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\imm32.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\msctf.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\uxtheme.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\dwmapi.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\cryptbase.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\bcryptprimitives.dll”。已加载符号。
“text.exe”(Win32):&&已加载“C:\Windows\System32\clbcatq.dll”。无法查找或打开 PDB 文件。
“text.exe”(Win32):&&已加载“C:\Windows\System32\baiducnTSF.dll”。无法查找或打开 PDB 文件。
线程 0x184 已退出,返回值为 - (0xc000013a)。
程序“[7380] text.exe”已退出,返回值为 - (0xc000013a)。
(21.25 KB, 下载次数: 4)
05:51 上传
这是运行后的结果
是否是图片路径不准确,把图片详细路径打上例如e:\\1.jpg,用双斜线
可能图片路径不正确吧。
我也是win8.1的,你照着这篇重新配置试试。
试试改成32位的。
Powered by

我要回帖

更多关于 vs2015 无法加载pdb 的文章

 

随机推荐