标签: stack-trace

速度和log4J出错

我构建了一个在我的localhost(tomcat)中完美运行的webapp.但是当我尝试部署时,在init()中速度崩溃,让我在这里留下这个奇怪的堆栈跟踪(抱歉大小):


ERROR [main] (VelocityConfigurator.java:62) - Error initializing Velocity!
org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration.
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206)
    at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255)
    at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:589)
    at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:229)
    at org.apache.velocity.app.Velocity.init(Velocity.java:107)
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.initVelocity(VelocityConfigurator.java:57)
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.configure(VelocityConfigurator.java:42)
    at com.webcodei.velociraptor.VelociListener.contextInitialized(VelociListener.java:26)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java velocity servlets log4j stack-trace

17
推荐指数
2
解决办法
3万
查看次数

C++弄清楚是否附加了调试器

我使用stackwalk64使用最新的symchk.exe和dbghlp.dll在visual studio 2008中为C++生成堆栈跟踪.当我运行独立的exe时,这很好用.但是,当附加调试器时,我死了视觉工作室.我以前有一个解决方法,我将所有的system32符号下载到磁盘,这很好,但最近的更新似乎打破了我的解决方法,即使我更新了符号.理想情况下,我想确定是否附加了visual studio调试器(它只会是VS调试器),因此在这种情况下我可以关闭堆栈跟踪.谢谢你的帮助.

c++ debugging deadlock stack-trace

17
推荐指数
1
解决办法
9133
查看次数

PHP - 记录堆栈跟踪警告?

是否有可能记录堆栈跟踪的PHP警告?或者捕获一个警告和error_log()吗?

在我的错误日志中有一些代码会导致警告,但是在不知道堆栈跟踪的情况下,无法知道导致这些警告的原因.

php warnings error-log stack-trace

17
推荐指数
2
解决办法
8225
查看次数

异常显示开发人员的路径而不是服务器

当任何ASP.NET项目(可能是任何.net应用程序)发生异常时,堆栈跟踪将显示开发人员计算机上的路径,即使在生产中也是如此.

怎么改呢?

引擎盖下发生了什么?

.net c# asp.net exception stack-trace

17
推荐指数
2
解决办法
4805
查看次数

没有堆栈跟踪的异常 - 如何?

我们有一项服务,它将在应用程序域级别(通过Log4net)记录未处理的异常.

我们记录了:

2014-01-28 16:49:19,636 ERROR [49] FeedWrapperService - 未处理的System.NullReferenceException:未将对象引用设置为对象的实例.

此异常没有堆栈跟踪.如果不对异常对象做一些疯狂的事情,这怎么可能呢?

我们的处理代码:

AppDomain.CurrentDomain.UnhandledException += LogAnyExceptions;

private void LogAnyExceptions(object sender, UnhandledExceptionEventArgs e)
{
    log.Error("unhandled", (Exception)e.ExceptionObject);
    throw (Exception)e.ExceptionObject;
}
Run Code Online (Sandbox Code Playgroud)

在我看来,重新抛出这一点毫无意义,因为AppDomain无论如何都会随着进程而下降,但我认为它不会影响我们的情况.

Windows应用程序事件查看器也只显示此null ref异常并且没有跟踪.

我已经测试了异常处理程序日志记录,它成功记录了堆栈跟踪和任何内部异常.如果它被我们的代码抛出,我们会看到堆栈跟踪.如果它被第三方c#库抛出,那么,我们再次看到至少一个方法的堆栈跟踪(无论是否是重新抛出的异常).在这里,我们看到一个没有堆栈跟踪的托管异常.我不知道这是怎么可能的.

查看反编译的第三方库,它与非托管代码进行对话,引发此异常的事件可能在非托管域中,但是如果没有堆栈跟踪,这种情况怎么会导致托管的空引用异常?

这个问题的原因是间歇性的.我们已经将这段代码在生产中运行了几个月,并且看过它曾经这样做过.这非常怪异.

普遍的共识是,应该将负责此类问题的系统推送到子进程中,这样我们就可以处理问题并安全地自动重启,但知道发生了什么事情会很好.

编辑以包含以下评论信息:

我的异常不是标准的重新抛出,因为堆栈跟踪是null或空.它没有重新投掷方法的名称.进一步挖掘,Exception类可以从序列化信息构造,看起来序列化信息可能包含堆栈跟踪的空字符串,并且可能创建它而不会导致其他错误.我想它可能来自那里,但我不知道它是如何起源的.

c# exception stack-trace unhandled-exception

17
推荐指数
3
解决办法
1万
查看次数

JavaScript:抛出错误时减少堆栈跟踪(指向调用站点)

我有这样的功能:

function foo() {
  throw new Error('`foo` has been removed in favor of `bar`')
}
Run Code Online (Sandbox Code Playgroud)

当有人打电话时foo,我希望堆栈跟踪(错误输出)指向呼叫站点foo,而不是throw内部的线路foo.

例如,我得到了这个:

$ node test.js

/home/ubuntu/tmp/test.js:2
  throw new Error('`foo` has been removed in favor of `bar`')
        ^
Error: `foo` has been removed in favor of `bar`
    at foo (/home/ubuntu/tmp/test.js:2:9)
    at Object.<anonymous> (/home/ubuntu/tmp/test.js:5:1)
    ...
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

$ node test.js

/home/ubuntu/tmp/test.js:5
  foo()
  ^
Error: `foo` has been removed in favor of `bar`
    at Object.<anonymous> (/home/ubuntu/tmp/test.js:5:1)
    ...
Run Code Online (Sandbox Code Playgroud)

javascript exception stack-trace node.js

17
推荐指数
1
解决办法
5135
查看次数

如何在JavaScript错误中指定"由...引起"?

在我的NodeJS程序中,我解析了一些用户JSON文件.

所以我使用:

this.config = JSON.parse(fs.readFileSync(path));
Run Code Online (Sandbox Code Playgroud)

问题是如果json文件没有正确格式化,抛出的错误就像:

undefined:55
            },
            ^
SyntaxError: Unexpected token }
    at Object.parse (native)
    at new MyApp (/path/to/docker/lib/node_modules/myApp/lib/my-app.js:30:28)
...
Run Code Online (Sandbox Code Playgroud)

由于它不是真正的用户友好,我想抛出一个Error指定一些用户友好的消息(如"你的配置文件没有很好的格式化"),但我想保持堆栈跟踪,以指向有问题的行.

在我使用的Java世界throw new Exception("My user friendly message", catchedException)中,为了得到导致那个的原始异常.

JS世界怎么可能?

javascript stack-trace node.js

17
推荐指数
2
解决办法
4457
查看次数

试图用未知的演示者解雇UIAlertController

我的应用程序崩溃了,它必须是因为UIAlertController.

仅在UIAlertController可用的iOS 8.x上会出现此问题.奇怪的是,我的应用程序不使用UIAlertViewController或UIAlertView.

报告告诉我:

Trying to dismiss UIAlertController <UIAlertController: 0x172c5d80> with unknown presenter.
Run Code Online (Sandbox Code Playgroud)

怎么会发生这种情况?

我想过

  1. 由于摇动手势,撤消系统AlertView显示
  2. 当提示或通用对话框仍在屏幕上时,WebView将被释放
  3. 低电量警报

但是没有一个案例让我陷入崩溃.

崩溃日志告诉我的是,操作系统显示一个AlertView,它将附加到我的应用程序窗口,在某些情况下,松散了呈现UIAlertViewController的父视图控制器.

任何想法如何找到问题?

这里是堆栈跟踪

_________________________________
0    CoreFoundation                         0x2bc0c45f __exceptionPreprocess + 127
1    libobjc.A.dylib                        0x39c79c8b objc_exception_throw + 36
2    CoreFoundation                         0x2bc0c3a5 +[NSException raise:format:] + 110
3    UIKit                                  0x2f4ad13d -[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:] + 414
4    UIKit                                  0x2f4acf97 -[UIAlertController _dismissAnimated:triggeringAction:] + 28
5    UIKit                                  0x2f590a0b -[_UIAlertControllerActionView touchesEnded:withEvent:] + 160
6    UIKit                                  0x2f159567 -[UIWindow _sendTouchesForEvent:] + 520
7    UIKit                                  0x2f152e31 -[UIWindow sendEvent:] + 542
8 …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c stack-trace uialertview ios

17
推荐指数
1
解决办法
2385
查看次数

记录javascript错误

我想在beta测试期间记录项目中的所有JS错误.现在我用以下方式做到:

window.onerror = myErrHandler;

function myErrHandler(message, url, line)
{
    $.ajax({
        cache: false,
        type: "post",
        data: {error:message, url:url, line:line, brouser:navigator.userAgent},
        url: "/Home/LogJavaScript/",
        async: true
    });
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但这种方式无法获得有关调用堆栈的任何信息.因此,有关jQuery或任何其他外部脚本中的错误的信息无济于事.

有没有办法改善这种日志记录?

javascript error-handling jquery logging stack-trace

16
推荐指数
1
解决办法
7014
查看次数

捕获JS错误的最简单方法

我一直在研究如何捕获JavaScript错误,然后将它们发送到我们自己的系统进行内部日志记录(因此我们可以尝试在可能的情况下进行复制,并修复任何可能的错误).到目前为止,我已经找到了不少付费服务:

TrackJS一个看起来有趣,但我们真的负担不起每个月花费了没有更多的钱.然后我遇到了这个图片:

http://www.stacktracejs.com/#!/docs/stacktrace-js

我似乎无法忍受它.这是我正在尝试的:

window.onerror = function(msg, file, line, col, error) {
    StackTrace.fromError(error).then(callback).catch(errback);
};

var callback = function(stackframes) {
    var stringifiedStack = stackframes.map(function(sf) {
        return sf.toString();
    }).join('\n');
    console.log(stringifiedStack);
};

var errback = function(err) {
        console.log(err);
};

StackTrace.get().then(callback).catch(errback);
Run Code Online (Sandbox Code Playgroud)

......我得到的就是:

TypeError:ErrorStackParser未定义

var stackframes = ErrorStackParser.parse(error);

任何人都可以建议一个解决方案,或者看看我对stacktrace.js脚本做错了什么?

更新:在下面的帮助下,我至少能够让它现在做点什么.结果你需要多个js库:

但是,我似乎仍然无法继续下去.

var callback = function(stackframes) {
    console.log(stackframes)
    var stringifiedStack = stamap(function(sf) {
        return sf.toString();
    }).join('\n');
    console.log(stringifiedStack);
};

var errback = function(err) { …
Run Code Online (Sandbox Code Playgroud)

javascript stack-trace stacktrace.js

16
推荐指数
1
解决办法
1434
查看次数