我有一个C++/CLI对象调用的本机C DLL,它是C#中WPF程序的ViewModel.我想在C DLL中设置断点.当我尝试设置它们时,它们会变灰并且帮助气球说断点当前不会被击中.没有为此文档加载任何符号.
为了让程序运行OK我必须添加一个自定义构建步骤,它将DLL,PDB,ILK和LIB文件复制到C#主程序的中间目录.我怀疑这与问题有关.
当我查看已加载模块的列表(Debug - Windows - Modules)时,在我知道DLL已经加载并且其中的某些函数被执行的点之后,我没有看到DLL.我看到C#主程序和调用C DLL的C++/CLI模块.
所有这些项目都在同一个解决方案中 - 我是否需要运行单独的解决方案实例才能调试DLL?理想情况下,我希望能够调试本机DLL以及调用GUI代码.
谢谢
虽然我知道调试和发布版本之间存在差异,但我很好奇是否将调试器附加到进程(内置版本或调试)更改处理行为?
作为参考,我正在开发HP 11.31 Itanium,但仍然对一般情况感到好奇.
第2列("AHA!算法")中的"编程珍珠"讨论了二进制搜索如何帮助各种过程,如排序,树遍历.但它提到二进制搜索可以用于"程序调试".有人可以解释一下这是怎么做的吗?
有关LINQ to SQL生成的查询输出的快速问题。
我在一个ASP.NET MVC项目Visual Studio 2008中,并且正在尝试MSDN文档中的建议:
MyDataContext _dc = new MyDataContext();
_dc.Log = Console.Out;
Run Code Online (Sandbox Code Playgroud)
但是“输出”窗口(CTRL + Alt + O)上没有任何显示。
为了使LINQ to SQL将调试信息转储到Visual Studio 2008中的“输出”窗口,我还需要配置其他东西吗?
我不知道它是否有任何区别,但是我的实体(和MyDataContext类)位于单独的类库项目中。
问候,
我正在使用嵌入式java,我将应用程序写入低资源设备.我得到的一个问题是当代码崩溃时设备停止.我可以通过我添加的一些日志记录从中获取一些信息.(简单的打印陈述)
由于内存限制,此日志记录无法保留在应用程序中.
我想知道有没有人知道有一个标志我可以传递给JVM,如果它是我需要的调试或标准编译,请说明.
如果它是一个调试版本,我希望包含print语句,如果它是一个删除print语句的标准版本.我问,因为我要经常剪切和粘贴语句等(这是一个痛苦的事)
谢谢
我通过将一些DirectX代码重新实现到不同的项目中来学习一些DirectX编程,但我确实发现调试器似乎在两个项目(示例和我的项目)之间输出不同的数据.
在我的项目上,如果我这样做:
D3DSURFACE_DESC desc;
pTarget->GetLevelDesc(0,&desc);
int width = desc.Width;
int height = desc.Height;
Run Code Online (Sandbox Code Playgroud)
并且调试器输出宽度和高度我得到十进制结果,但是在directx样本中结果是十六进制(两者实际上都是准确的,当我将十六进制转换为十进制时似乎是合适的).
另一个(略微)次要问题是调试器向我提供有关vairous DirectX相关指针的信息的方式.例如,在我的项目中,当我停止执行并将鼠标移到指针上时,我得到一些中文字符,空指针以及所有这些(纹理仍然有效并且100%工作),但在DirectX示例中我得不到事实上它除了它是一个DirectX基类型(我的项目没有做的事情)之外,它不提供指针的任何信息.
所以我只是想知道,为什么会这样,是否有任何我可以使用的调试选项使它们工作相同?
我经常发现自己在log4net和log4j的调试语句中添加了连接字符串或使用字符串格式化器,我应该用"if debug"块来包围这些调试语句,以便通过处理这些参数来阻止自己浪费资源,即使调试语句将会不打印出来?
我会假设检查if(isDebug)是否比发生字符串操作更快更高效,但是当调试级别设置为高于debug时,它会导致程序以不同的方式运行(更快),这可能意味着同步问题当我写入日志时,在生产中发生的事情不会发生.
当我设置断点(双击特定行编辑器的边框)时,有3种颜色:1.蓝色2.褪色蓝色3.黄色带蓝色边框
你能告诉我每种颜色的含义是什么吗?
谢谢.
三个疑点1)假设我得到如下调用堆栈
user32.dll!_InternalCallWinProc@20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_CallWindowProcAorW@24() + 0x51 bytes
user32.dll!_CallWindowProcW@20() + 0x1b bytes
Run Code Online (Sandbox Code Playgroud)
现在每个函数末尾提到的字节是什么?就像第一个语句一样,什么是0x28字节.
2)如何在VS中的windows系统dll上放置断点?在windbg中,我可以搜索windows系统dll的特定功能
>x wininet!*funcA*
Run Code Online (Sandbox Code Playgroud)
使用此命令,我可以获取此函数的地址并可以放置断点.我可以在Visual Studio中执行相同的操作吗?
3)我没有dll的Symbol文件.我在反汇编中得到的调用堆栈是
7814XXX0 call dword ptr [__imp__WindowsFuncA@32 (781EXXXXh)]
Run Code Online (Sandbox Code Playgroud)
什么是__imp__上面调用栈?这是否意味着这个windows函数被挂钩到其他一些dll?
我有一个庞大而复杂的网站,大多是由其他人编写的.我做了一些更改,现在当我尝试访问网站上的任何页面时(而不仅仅是我的更改位置),我收到下面描述的错误.虽然我想知道如何解决这个问题,但我更想知道我应该采取的一般诊断步骤,以便追查问题 - 我希望下次能够自己解决.在此先感谢您的帮助!
当我将浏览器导航到网站上的任何页面时,我收到服务器错误:
Parser Error
Parser Error Message: Object reference not set to an instance of an object.
Source Error: [No relevant source lines]
Run Code Online (Sandbox Code Playgroud)
我查看了服务器上的事件日志,并获得了一些稍微详细的信息:
Event code: 3006
Event message: A parser error has occurred.
Exception information:
Exception type: HttpException
Exception message: Object reference not set to an instance of an object.
Stack trace:
at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
Run Code Online (Sandbox Code Playgroud)