标签: stack-trace

Java NullPointerException 与截断的堆栈跟踪

我的 RabbitMQ 监听器出现以下故障。我使用 Spring Boot 1.4.1 和 Spring Integration 4.3.3 (带有 spring-boot-starter-amqp 和 spring-integration-amqp)。我还使用 RabbitMQ 3.5.7。

少量消息会在大量流量下随机出现问题(到目前为止,在本地复制它并不走运)。

令我困惑的是,堆栈跟踪并不指向我的应用程序,而只是指向框架。下面我附上完整的堆栈跟踪。这是 spring、rabbitMQ 驱动程序还是服务器中的错误?

2017-05-02 10:38:42.337 [501de2ff-cd24-4c28-8434-48bc942457d9]  WARN 1 --- [messageListenerContainer-2] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.

org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:870)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:780)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:700)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$001(SimpleMessageListenerContainer.java:95)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$1.invokeListener(SimpleMessageListenerContainer.java:187)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListener(SimpleMessageListenerContainer.java:1187)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:681)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:1165)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:1149)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1100(SimpleMessageListenerContainer.java:95)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1312)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.messaging.MessageHandlingException: nested exception is java.lang.NullPointerException
        at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:96)
        at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:89)
        at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109)
        at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127)
        at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116) …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception stack-trace

2
推荐指数
1
解决办法
6724
查看次数

Windows MSVS 2017 上的 boost::stacktrace

当我的 Windows 应用程序崩溃时,我想要一个回溯。Boost stacktrace 看起来很有趣,我在 Linux 中使用过它;但是,我safe_dump_to()在 Windows 中得到的结果为零!

我想我做了一个简单的疏忽,希望有人能提供帮助。

我正在使用带有 ninja 和 CMake 的 MSVS2017 编译器。

我已经构建了使用这些标志构建的 Boost v1.67:

link=static address-model=64 variant=release threading=multi
Run Code Online (Sandbox Code Playgroud)

我运行了测试boost_1_67_0/libs/stacktrace/test/以确保我正确构建了库。

这是我的 CMake 文件,请注意我使用的-DCMAKE_BUILD_TYPE=RelWithDebInfo

cmake_minimum_required(VERSION 3.0)

set( target_name stacktrace_test)

# boost
set(Boost_USE_STATIC_LIBS ON)
find_package( Boost REQUIRED COMPONENTS date_time filesystem thread 
system stacktrace_windbg)

add_executable(${target_name} main.cpp)

set_property(TARGET ${target_name} PROPERTY CXX_STANDARD 14 )

target_compile_definitions(${target_name} PUBLIC
  BOOST_ALL_NO_LIB=1   # disable pragama inclusion 
  BOOST_STACKTRACE_LINK=1
  BOOST_STACKTRACE_USE_WINDBG=1
  )
target_include_directories(${target_name} SYSTEM PUBLIC
  ${Boost_INCLUDE_DIRS}
  )
target_link_libraries(${target_name}
  ${Boost_LIBRARIES} # boost
  dbgeng …
Run Code Online (Sandbox Code Playgroud)

c++ boost cmake stack-trace visual-studio

2
推荐指数
1
解决办法
2042
查看次数

为什么最后会打印异常的堆栈跟踪?

这是我的简单测试代码:

class Scratch {
    public static void main(String[] args) {
        try {
            System.out.println("Line 1");
            throw new RuntimeException();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            System.out.println("Line 2");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行后我会得到这个:

Line 1
Line 2
java.lang.RuntimeException
    at Scratch.main(scratch_4.java:5)

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

我以为“finally”代码必须最后执行,但事实并非如此。是什么原因?

java exception stack-trace

2
推荐指数
1
解决办法
370
查看次数

具有格式的Eval stacktrace

我想获取一个EventLog条目,该条目在其Message中有一个堆栈跟踪并将其绑定到GridView.如果我使用Eval("Message")并将其放在标签或<p>中,它会显示,但堆栈跟踪会被一起粉碎.

如果我在TextBox中对它进行评估,它会保留其格式.

有没有办法将此stacktrace值计算为某种文字类型控件并保留格式?

我已经尝试过Server.HtmlEncode(Eval("Message"))但没有成功.

c# asp.net data-binding gridview stack-trace

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

帮助阅读Android中的ANR堆栈跟踪

我一直在与我的一项服务中发生的ANR作斗争一段时间了.它很难重现,并且UI似乎在它发生之前就具有完整的功能,100%的时间从来没有任何明显的滞后或冻结.我的服务有一个TimerTask和一些运行的AsyncTask,就是这样.

我在2.2中使用Android Market报告它时得到的堆栈跟踪很难阅读,似乎没有直接引用我的任何代码,只是来自SDK中的类.任何人都可以看看堆栈跟踪,看看你是否可以告诉发生了什么.

打印输出是如此之大,我选择将其发布到pastebin,我希望这不违反规则. http://pastebin.com/KHUD0UHW

这是Logcat日志以及 http://pastebin.com/V5xSey36

android stack-trace android-anr-dialog

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

Java:如何从神秘的堆栈跟踪中理解?

在尝试运行单元测试时,我得到以下堆栈跟踪.我甚至不知道从哪里开始寻找(请阅读下面的评论).

我应该从哪里开始,你会怎么做才能解决这个问题?

(请注意,以下堆栈跟踪基本上是我如何从Eclipse获取它,没有任何格式或任何东西:每个大约120个字符的无数行) [我只粘贴了显然问题发生的五行]

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'acceptanceChain' defined in class path resource 

[.../chain/connector/...xml]: Cannot resolve reference to bean 'xxxCommand' while setting constructor argument with key [0]; nested exception is 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxCommand' defined in class path resource 

[.../bl/chain/connector/....xml]: Cannot create inner bean 'yyyDTO#1d95da7' of type [yyyListDTO] while setting bean property 'yyyListDTO'; nested exception 

is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'yyyListDTO#1d95da7' defined in class path resource 

[zzz.xml]: Unsatisfied dependency expressed …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing stack-trace

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

C#/ WPF app抛出一个ObjectDisposedException; 为什么我无法捕获或获得堆栈跟踪?

我有一个C#WPF UI应用程序,当我关闭它时,我总是得到一个Windows应用程序崩溃对话框("UIDemo遇到了问题,需要关闭.").

错误报告指示它是一个System.ObjectDisposedException,它指示在已处置对象上调用方法的某个位置.那很好,我明白这一部分.

我很想解决它. 我只是无法在这个混蛋上得到一个堆栈跟踪.

该例外正在逃避以下所有情况:

  • 我的DispatcherUnhandledException处理程序
  • 我的try/catch包含Exit事件处理程序的全部内容
  • 单击该应用程序崩溃对话框中的"调试"将关闭它并且不执行任何操作
  • 在VisualStudio的调试模式下运行应用程序似乎可以工作,但奇怪的是,它似乎没有这种方式崩溃,所以没有跟踪

我必须继续的是Windows发送给MS的错误报告的神秘内容.这些十六进制的内存转储并不是那么有用.

有谁知道我怎么能得到那个痕迹?

c# wpf stack-trace objectdisposedexception

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

Android IllegalArgumentException

运行以下方法时,我不断收到IllegalArgumentException:

public int randomize(ArrayList<Integer> list){
    Random rdm = new Random();  
    int size = list.size(); 
    int chosen = rdm.nextInt(size);
    Integer card = list.get(chosen);
    list.remove(chosen);
    return card;
}  
Run Code Online (Sandbox Code Playgroud)

这是StackTrace:

11-22 16:52:16.890: E/AndroidRuntime(24979): FATAL EXCEPTION: main
11-22 16:52:16.890: E/AndroidRuntime(24979): java.lang.RuntimeException: Unable to start activity ComponentInfo{edu.marshall.meadows182.match/edu.marshall.meadows182.match.Match}: java.lang.IllegalArgumentException
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1821)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.app.ActivityThread.access$1500(ActivityThread.java:132)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.os.Looper.loop(Looper.java:143)
11-22 16:52:16.890: E/AndroidRuntime(24979):    at android.app.ActivityThread.main(ActivityThread.java:4263)
11-22 16:52:16.890: …
Run Code Online (Sandbox Code Playgroud)

eclipse android exception arraylist stack-trace

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

线程处于RUNNABLE状态但堆栈跟踪显示它正在处理?

在为Java应用程序获取Thread Dump之后,会显示几个线程快照,如下所示:

Thread t@384
   java.lang.Thread.State: RUNNABLE
    at xmlpdf.text.Word.allocateArrays(Word.java:205)
    at xmlpdf.text.Word.calculateWidth(Word.java:237)
    at xmlpdf.text.TextFormatter.format(TextFormatter.java:167)
    at xmlpdf.text.TextFormatter.formatToWidthImpl(TextFormatter.java:116)
    at xmlpdf.text.TextBlock.formatToWidthImpl(TextBlock.java:71)
    at xmlpdf.tables.TextCell.formatToWidthImpl(TextCell.java:45)
    at xmlpdf.tables.Cell.formatToWidth(Cell.java:349)
    at xmlpdf.tables.Row.assignCellWidths(Row.java:97)
    at xmlpdf.tables.Table.layout(Table.java:354)
    at xmlpdf.tables.Table.formatRowsToWidth(Table.java:329)
    at xmlpdf.tables.Table.formatToWidthImpl(Table.java:373)
    at xmlpdf.Block.formatToWidth(Block.java:57)
    at xmlpdf.renderer.Page.formatWidthAndHeight(Page.java:200)
    at xmlpdf.renderer.Page.addBlockWhichIsNotFooterWholePagesOnly(Page.java:1026)
    .....
Run Code Online (Sandbox Code Playgroud)

几个相同的线程(由线程名称标识)处于完全相同的状态.

仅供参考通过JMX进行检查还显示这些线程运行了4个小时.

题:

一个线程如何处于一种RUNNABLE状态但Stack Trace它的状态却显示它正在做某事?

我认为RUNNABLE总是意味着线程用于处理任何新任务而不是处理任务.

java performance multithreading stack-trace

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

GDB - 它如何知道函数调用堆栈?

当使用gdb调试汇编程序时,bt会打印调用堆栈.

问题是:

  • (a) gdb是否根据rbp存储在当前函数的寄存器中的值以及先前rbp值的堆栈中的信息来了解?
  • 如果是,(b-1) gdb如何根据rbp值知道它是哪个函数?(b-2)-g在编译时指定选项时,堆栈库和函数之间的映射是否存储在可执行文件中?(b-3)如何读取该映射数据readelf?哪一部分?
  • 如果没有,(c)那么gdb如何跟踪函数调用堆栈?

assembly gdb stack-trace backtrace

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