如果你恰好要求它们,Objective Caml语言只会产生堆栈跟踪 - 对字节码和本机代码有什么要求?
神奇的咒语
LD_PRELOAD=/lib/libSegFault.so someapp
Run Code Online (Sandbox Code Playgroud)
someapp与libSegFault.so一起运行,提供有关SIGSEGV的回溯信息,如许多 不同的 地方所述.
除了使用类似signal(7)方法来SIGABRT调用SIGSEGV处理程序之外,还有一些方法可以让libSegFault为assert(3)失败提供回溯信息吗?
我的Java堆栈跟踪有很多我不关心的条目,显示通过代理和Spring反射方法的方法调用以及类似的东西.它可能很难从我的代码中挑选出实际上来自堆栈跟踪的部分.Ruby on Rails包含一个"堆栈跟踪清理器",您可以在其中指定堆栈跟踪模式的列表,以省略打印的堆栈跟踪 - 对于Java来说,通用的最佳方法是什么?
如果这在任何地方都有效,那将是最好的,包括Eclipse jUnit runner.
在capybara中运行集成测试时,让app引发异常(500错误;在浏览器中呈现),test.log文件中没有堆栈跟踪.这是我在那里看到的唯一一条线:
Completed 500 Internal Server Error in 25ms
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?test.log在集成测试期间如何使堆栈跟踪出现?
我有一个打印异常的通用函数(使用log4j):
private void _showErrorMessage(Exception e) {
log.error(e.getClass() + ": " + e.getMessage() + ": " + e.getCause() + "\n" + e.getStackTrace().toString());
}
Run Code Online (Sandbox Code Playgroud)
而不是看到我看到的堆栈跟踪:
[Ljava.lang.StackTraceElement;@49af7e68
Run Code Online (Sandbox Code Playgroud)
如何正确查看异常的堆栈跟踪?
log.error(e)< - 显示错误,但不显示堆栈跟踪
我一直认为"throw"和"throw ex"之间的区别在于单独抛出并没有重置异常的堆栈跟踪.
不幸的是,这不是我正在经历的行为; 这是一个复制我的问题的简单示例:
using System;
using System.Text;
namespace testthrow2
{
class Program
{
static void Main(string[] args)
{
try
{
try
{
throw new Exception("line 14");
}
catch (Exception)
{
throw; // line 18
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这段代码能够从第14行开始打印一个callstack; 然而,callstack从第18行开始.当然,它在样本中没什么大不了的,但在我的实际应用中,丢失初始错误信息是非常痛苦的.
我错过了一些明显的东西吗 有没有其他方法来实现我想要的(即重新抛出异常而不丢失堆栈信息?)
我正在使用.net 3.5
有时异常返回类似于:"ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小".
它不是那么可读,因为它既没有报告表,也没有报告它试图写的值.
在异常发生或被捕获时获取当前过程名称会很有用.
我怎么能得到它?
Visual Studio 2010 SP1,已编译的WCF应用程序,将其放在服务器上,当然它在第一次运行时出现错误(什么是新的),将堆栈跟踪输出到日志文件.
它正在看到我的开发环境的路径.为什么?是因为我将它部署为Debug与Release相比还是还有别的东西,或者我是否应该更加谨慎地输出Stack Traces呢?
04/09/2012 03:58:46: Error: Object reference not set to an instance of an object. at App1.Logging.LogMessageToFile(String msg, Boolean isUsingClickOnceApp) in C:\Users\robcube\Documents\Visual Studio 2010\Projects\AppWebService\App1\Logging.cs:line 63
at App1.App1Main.ConnectWebService(String description) in C:\Users\robcube\Documents\Visual Studio 2010\Projects\AppWebService\App1\International.cs:line 40
04/09/2012 03:58:46: Error: Object reference not set to an instance of an object. at App1.App1Main.UpdateActivityLog(String data, String userName, Boolean deleteData, Int64 firstId, Int64 lastId, String changeType) in C:\Users\robcube\Documents\Visual Studio 2010\Projects\AppWebService\App1\App1Main.cs:line 641
Run Code Online (Sandbox Code Playgroud)
谢谢,-rob
有谁知道为什么会这样?我看到我的应用程序报告了这个崩溃,但我不知道它是什么.
java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
Thread: Binder_3, Exception: java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
at android.app.ANRManagerNative.asInterface(ANRManagerNative.java:30)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:94)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:88)
at android.util.Singleton.get(Singleton.java:34) at android.app.ANRManagerNative.getDefault(ANRManagerNative.java:37)
at android.os.MessageLogger.dump(MessageLogger.java:253)
at android.app.ANRAppManager.dumpMessageHistory(SourceFile:38)
at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1176)
at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:609)
at android.os.Binder.execTransact(Binder.java:351)
at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud) crash android noclassdeffounderror stack-trace android-anr-dialog
我正在使用Java的Logger课程.我想通过ex.printStackTrace()进入Logger.log(loglevel, String),但printStackTrace()回报率void.所以我无法传递和打印异常的堆栈跟踪.
有什么方法可以转换void成String,或者是否有任何其他方法来打印整个堆栈的异常跟踪?