java: printing current backtrace [duplicate]

2019-06-28 02:25发布

问题:

This question already has an answer here:

  • Get current stack trace in Java 22 answers

is there a way to add a command in Java to add the current backtrace ?

I'm writing a red5 application and the appDisconnect function is being called twice. whenever a user changes room. I want to add a function at the beginning of the appDisconnect function that shows the current backtrace and then I can see what called it.

thanks

回答1:

You can output the stack trace to the current line like this:

new Exception().printStackTrace();

Or if you need programmattic acces the the stacktrace elements you can use

Thread.currentThread().getStackTrace()


回答2:

The only way I know of is to look at:

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();

Although this sounds more like a logging issue than actually observing the call trace. You could also try to setup debug execution in your IDE and add a few well placed breakpoints.