如果使用调试信息编译,我如何确定任何Java .class文件?
如何确切地说出使用了-g {source | lines | vars}选项?
我刚刚将Visual Studio(C++)解决方案转移到另一台计算机上,根据我的需要设置了所有目录和设置,并对解决方案进行了清理/重建.我在编译时在一堆.obj上得到了上面的错误,不知道如何处理它.
我想改变日志记录级别,具体取决于我是否正在进行调试,但是我找不到代码片段来检查应用程序是否在调试模式下运行.
我正在使用eclipse来调试应用程序,所以如果解决方案只能在Eclipse中运行,那就没问题了.
我在iPhone应用程序中使用NSAssert()调用,而我对Apple文档的理解是,如果定义了NS_BLOCK_ASSERTIONS,则断言不会编译到代码中.
要关闭断言,我在头文件中声明:#define NS_BLOCK_ASSERTIONS
但是,断言代码似乎仍在运行.
这里有什么我想念的吗?
谢谢
约翰
之前没有对NUnit做过多少工作,但只是想以控制台类型的方式将一些文本转储到窗口中.
e.g. Console.WriteLine("... some information...");
Run Code Online (Sandbox Code Playgroud)
这当然不会起作用,因为NUnit正在推动事情发展.
我正在构建一些单元测试,并希望在调试期间转储一个变量值列表以供检查.如果我需要这样做,它不是严格的单元测试,我承认,但这将是方便的.
我们有一个单页面应用程序随机崩溃整个浏览器选项卡.我观察了一个多小时的记忆,但它没有增加,一切看起来都很好.经过一段时间后突然间,突然崩溃了.
我找了一个崩溃转储
C:\Users\cburgdorf\AppData\Local\Google\CrashReports
Run Code Online (Sandbox Code Playgroud)
但Chrome-last.dmp完全过时了.有什么地方可以查找有关崩溃的其他信息吗?更不用说它很难重现野兽.
我想知道我是否可以启动带有windbg的Chrome并等待(2小时左右的叹息)因为标签崩溃.那会有用吗?
UPDATE
你们所有人都给出了很好的答案,并为寻找漏洞提供了有价值的建议 最后,我能够使用以下步骤重现错误并获得明确的崩溃转储:
1.) windbg.exe -o chrome.exe
2.) reproduce crash
3.) .dump /ma C:\Path\To\A\CrashDump\File.dmp (as Paul pointed out)
4.) end session and load the crash dum with windbg
5.) use !analyze -v to extract valuable information
Run Code Online (Sandbox Code Playgroud) 如何打印theano TensorVariable的数值? 我是theano的新手,所以请耐心等待:)
我有一个函数,我y作为参数得到.现在我想调试打印y到控制台的形状.运用
print y.shape
Run Code Online (Sandbox Code Playgroud)
导致控制台输出(我期待数字,即(2,4,4)):
Shape.0
Run Code Online (Sandbox Code Playgroud)
或者我如何打印例如以下代码的数值结果(这将计算有多少值y大于最大值的一半):
errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0))
Run Code Online (Sandbox Code Playgroud)
errorCount应该是一个数字,因为T.sum总结了所有的值.但是使用
print errCount
Run Code Online (Sandbox Code Playgroud)
给了我(期待的东西134):
Sum.0
Run Code Online (Sandbox Code Playgroud) 我在使用带有XCode 5.0的Eclipse C/C++项目进行Application Debug时遇到了很多问题,我终于做到了.我终于能够成功调试我的应用程序,这就是为什么我决定制作这个小教程,希望能节省时间给别人.
当尝试在Mavericks OS上的Eclipse上用C/C++编写调试和应用程序时,它会出现"Error gdb - version".
这是因为Eclipse无法在新的Mac OSX上找到GDB调试,因为Apple不再使用GDB支持代替LLDB.要检查这是否是您的情况,只需尝试从终端运行,gdb它将显示为找不到文件.
问题是LLDB还没有为Eclipse配置(或者相反).那么如何使Eclipse再次调试应用程序,就像之前的10.8操作系统一样?
首先获取并编译GDB.您有两种可能的选择:
我的建议是从Homebrew获得它.在他们的网站上查看下载链接并使用安装
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/hebrew/go)"
Run Code Online (Sandbox Code Playgroud)
让它安装.在成功安装GDB之后,您需要签署证书以使Eclipse能够使用GDB,否则它将显示错误:
无法找到进程ID为28885的Mach任务端口:(os/kern)失败(0x5).(请检查gdb是否为codesigned - 请参阅taskgated(8))
这意味着Eclipse现在可以找到GDB但由于Apple证书问题而无法运行它.
要签署GDB应用程序并使Eclipse运行它,请遵循以下指南:
https://sourceware.org/gdb/wiki/BuildingOnDarwin
可归纳为:
打开菜单/钥匙串访问/证书助理/创建证书(TOP MENU BAR)
选择一个名称(示例中为gdb-cert)3.1将"Identity Type"设置为"Self Signed Root"3.2将"Certificate Type"设置为"Code Signing"3.3检查标志"Let me override defaults"3.4单击"继续"直到进入"指定证书位置"屏幕"然后将钥匙串设置为"系统"3.5如果您无法将证书存储在"系统"钥匙串中,请在"登录"钥匙串中创建,然后导出它.然后,您可以将其导入"系统"钥匙串.3.6确保"系统"中有"gdb-cert"(左上方窗口)
在新制作的证书(gdb-cert)上按两次,选择"获取信息",
现在您需要通过终端进行签名认证
$ codesign -s gdb-cert ../path of GDB
Run Code Online (Sandbox Code Playgroud)
例:
$ codesign -s gdb-cert /usr/local/bin/gdb
Run Code Online (Sandbox Code Playgroud)
你们现在都已经准备就绪....准备在MacOSX Mavericks上调试Eclipse上的C/C++应用程序
确保你已经正确设置了所有设置再次仔细检查Eclipse菜单运行 - >调试配置 - >调试器行:GDB调试器 - >/usr/local/bin/gdb(或你的本地路径,检查"$ which gdb "获取正确的路径"GDB命令文件 - > …
我的POST请求中有内部服务器错误.我该如何调试它们?是否可以在php.ini中设置?该文件非常大,并且在很多时候会遇到"错误"这个词.
我正在调试Android Studio(AS)1.0.2,并在build.gradle中设置了compileSdkVersion 21.使用带有API 21的模拟器时,一切正常.在具有API 19的设备上进行调试时会出现此问题.调用堆栈中的每一行(在AS中标记为"帧")正确显示与API 19匹配的函数名称,源文件和行号.但是,当我单击一个时与其中一个框架源(例如Activity.java)对应的行,AS错误地打开并显示文件的API 21版本而不是API 19版本.
在我的android sdk文件夹中,我有./sources/android-19和./sources/android-21
知道为什么AS显示错误的文件版本?
我试过的事情(按顺序):
总而言之,当单击调用堆栈中的一行时,AS将打开由compileSdkVersion表示的文件版本,而不是调试会话期间设备/仿真器使用的版本.