调试AppleScript有哪些提示和技巧?有调试器吗?如果没有,插入"打印"以显示变量值的最佳方法是什么?有没有办法"漂亮地打印"更复杂的数据结构?
我经常使用VS 2008来调试应用程序的.NET C#组件.有时,我想退出调试并继续运行应用程序.停止调试会终止我正在调试的进程.
我怎样才能实现目标?
这不是一个Web应用程序,它是一个运行托管和非托管代码的本地进程.
我在Debug菜单中找到了"Detach All"选项,但是它被禁用(灰显).
我正在使用Typescript和一些由Typescript公开的ES6特征(如ES6 String Literals)开发项目`Something ${variable} Something else`.
在调试问题时,我在我的打字稿文件中删除了一个断点,以便在源面板中逐步执行它,这通常可以正常工作.
但Chrome Dev Tools存在ES6字符串文字的问题,似乎无法识别ES6字符串文字的结尾.
相反,字符串文字后面的所有代码都标记为红色(调试器中的字符串突出显示)并且阻止了变量检查,因为chrome调试器似乎认为它只是一个庞大的字符串.
有人遇到过这个问题,找到了解决方案,或者知道这是否是谷歌Chrome开发工具的路线图?
编辑1:
看起来这个问题目前正由Chromium团队处理.请参阅问题报告以获取更新:
bugs.chromium.org/p/chromium/issues/detail?id=659515
编辑2: Bug已经打开很长一段时间了,但似乎没有被优先考虑.如果您遇到问题,请转到上面的chrome链接,并使用有用信息对其进行星标/评论,以便将其转移到Dev Tools团队的焦点.
string debugging google-chrome google-chrome-devtools typescript
我听说使用PDB文件可以帮助诊断崩溃发生的位置.
我的基本理解是你给Visual Studio提供源文件,pdb文件和崩溃信息(来自Dr Watson?)
有人可以解释一下它是如何工作的/涉及的内容?(谢谢!)
我已经意识到Windbg是一个非常强大的Windows平台调试器,我偶尔会学习一些新的东西.Windbg用户可以分享他们的一些疯狂技能吗?
ps:我不是在寻找一个漂亮的命令,可以在文档中找到.如何分享关于做一些人们无法想象的事情的提示可以用windbg完成?例如,当在windbg下运行进程时,生成有关内存分配的统计信息的某种方法.
使用Visual Studio 2010 Professional,我有一个如下所示的ToString()方法:
public override string ToString()
{
return "something" + "\n" + "something";
}
Run Code Online (Sandbox Code Playgroud)
因为有几个" something",每个都很长,我想看看
something
something
Run Code Online (Sandbox Code Playgroud)
可悲的是,我看到了
"something\nsomething"
Run Code Online (Sandbox Code Playgroud)
有没有办法得到我想要的东西?
debugging newline immediate-window visual-studio-2010 visual-studio
这经常发生在我身上.例如,现在我将调试器停在方法的断点处...并且它根本不显示任何变量值.其他时候,它显示一些,但不显示其他.
谁能解释一下?
我在C:\ full path这里有一个解决方案\ VS2010\blender.sln
该解决方案包含许多项目(大约100个).当我编译它们时,它们都工作正常.我可以毫无问题地运行它们,并且(相当)一切正常(有一些错误).其中一个项目是ALL_BUILD,但如果我尝试调试INSTALL(另一个项目),它会给出相同的错误.我正在使用RELWithDebInfo作为配置进行编译,如果我手动执行该程序则可以正常工作.它在C:\ full path输出\ VS2010\bin\RelWithDebInfo
但是,如果我尝试运行编译器,它说
"无法启动程序C:\完整路径\ VS2010\RelWithDebInfo\ALL_BUILD无法找到指定的文件"
我试图将已编译的程序复制到VS所需的路径中,但它引发了同样的错误.
我该怎么做才能解决这个问题?现在我设置cmake来生成一个mingw项目,我编译它并用gdb调试它,但这是一个非常缓慢且不切实际的工作流程,我想使用VS调试器.
我必须说,如果我使用Debug作为配置编译,程序甚至不会启动.
我在Win7 64bit上使用VS2010 Express
(这是一个很大的开源程序,所以我不确切知道它做了什么)
不久,我想知道gcc(或g ++.我需要它在C中,但也很好奇c ++)定义任何特殊符号如果-g启用.可以?如果是这样,有什么符号?
在搜索过程中,我发现:
_DEBUG是手动定义的(通过手动我的意思-D_DEBUG)并且是从Visual C程序员那里习惯的习惯(因为VC _DEBUG在调试模式下编译时定义)NDEBUG如果不在调试模式下,则定义.虽然我发现有几个地方在说这个,但是我在.c和.cpp文件中尝试使用我的gcc和g ++,并且在-g没有这些符号的情况下都没有定义这样的符号!编辑:让我演示为什么我不想使用非标准符号:
想象一下内核模块做了什么,并提供了包含在其他内核模块中的头文件,以便它们可以连接到这个.
现在作为一个工具,我在其中一个头文件中:
#ifdef DEBUG <-- This is what I need
#define LOG(x, ...) printk("Some extra info"x, ##__VA_ARGS__);
#else
#define LOG(x, ...) printk("Without extra info"x, ##__VA_ARGS__);
#endif
Run Code Online (Sandbox Code Playgroud)
请注意,名称不是真的LOG,这是一个例子.
现在,我可以为DEBUG自己使用任何符号,但如果有人包含我的标题,他们可能无法定义该符号.当然,我可以告诉他们"顺便说一句,在调试模式中获取标题,定义另一个符号",但这对我来说听起来不对.
我可以在标头中定义符号并将其包含在所有头文件中.这样,如果它们包含我的一个标题,它们也会得到调试符号.现在的问题是,如果他们不希望在调试模式下进行编译,我的头仍然认为他们是在调试模式.
所以我认为最好的是使用在使用时定义的符号-g,如果有的话!
到目前为止,我得出结论,我可以这样做:
how_to_build.h
#if !defined(NDEBUG)
#define MY_DEBUG
#endif
Run Code Online (Sandbox Code Playgroud)
用法:
#include "how_to_build.h"
#ifdef MY_DEBUG
// rest of the story
Run Code Online (Sandbox Code Playgroud)
这样,通用选项也NDEBUG …