有没有办法在Java中添加命令来添加当前的回溯?
我正在编写一个red5应用程序,并且appDisconnect函数被调用两次.每当用户改变房间时.我想在appDisconnect函数的开头添加一个函数来显示当前的回溯,然后我可以看到它调用了什么.
谢谢
I'm playing with the gtkd wrapper generator, and running into an std.conv exception for which I cannot manage to get any symbolic debug info at all. I've compiled with debug symbols:
$ dmd -gc -debug utils/HTODConvert.d utils/WrapperIF.d utils/funct.d utils/DefReader.d utils/GtkWrapper.d utils/HtmlStrip.d utils/IndentedStringBuilder.d utils/convparms.d utils/GtkDClass.d -ofgtkwrap
Run Code Online (Sandbox Code Playgroud)
but the backtrace is just a list of memory addresses:
std.conv.ConvException@/usr/include/d/std/conv.d(1779): Unexpected ' ' when converting from type string to type int
----------------
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805c4ab]
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805c57a]
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806d49e]
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806924e]
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8068c4a]
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8066aed] …Run Code Online (Sandbox Code Playgroud) 我希望在请求期间执行的每个查询都有回溯,因此我可以找到它们的来源并减少计数/复杂性.
我正在使用这个优秀的中间件片段来列出和查询时间,但我不知道它们来自哪里.
我在django/db/models/sql/compiler.py中搜索过,但是明显的形式是获取本地版本的django并编辑该代码我无法看到如何锁定查询.有没有可以使用的信号?似乎每个查询都没有信号.
是否可以指定默认值Manager?
(我知道django-toolbar,我希望有一个解决方案,而不使用它.)
rails console默认情况下使用靴子context.back_trace_limit=16,只需键入即可将其更改为您想要的任何内容context.back_trace_limit=n.问题是每次启动时都必须输入它rails c.我在哪里context.back_trace_limit永久更改?有关轨道控制台配置的更多阅读表示赞赏
根据官方 kernel.org 文档 echo l > /proc/sysrq-trigger应该给我所有 CPU 的当前调用跟踪。但是当我这样做几次并查看dmesg之后,调用跟踪看起来完全相似。这是为什么?
问题在于以编程方式在优化的二进制文件中打印有意义的stacktrace。例如,我们可以使用backtrace,backtrace_symbols,abi :: __ cxa_demangle打印堆栈跟踪。但据我所知,我们需要使用编译器标志-g而不是-O1优化标志来构建二进制文件。我可以做到的。
我期待在发行二进制文件(例如,用-03标志编译)中生成具有正确函数名称的回溯。
可行吗?我对此进行了大量研究,但没有任何实质性意义。
更新1:有没有一种方法可以让我们创建一个包含一些符号的辅助文件,并且可以在优化的二进制过程中引用该文件来生成堆栈跟踪?
我如何开始Backtrace与 SNAFU 合作?我尝试过,但我只是得到空的回溯。文档似乎很少。
return Error::SampleError {
msg: "foo".to_string(),
backtrace: Backtrace::generate(),
};
Run Code Online (Sandbox Code Playgroud)
印刷
return Error::SampleError {
msg: "foo".to_string(),
backtrace: Backtrace::generate(),
};
Run Code Online (Sandbox Code Playgroud)
这是从调用堆栈中很深的函数中抛出的。
我安装了PHPUnit和xdebug,在CLI的php.ini文件中我得到了:
display_errors = On
xdebug.default_enable = 1
Run Code Online (Sandbox Code Playgroud)
我已经验证了当我使用交互式控制台创建错误时会打印xdebug回溯,但是当运行phpunit时发生错误时,没有回溯?
回溯发生了什么?phpunit是否将它隐藏起来?有什么设置我不见了?
谢谢!
我正在调试一个在我的mac上导致内核转储的驱动程序.它显示了由一系列地址组成的长回溯:
panic(cpu 6 caller 0xffffff8004dc9986): trying to interlock destroyed mutex
(0xffffff8049deedb0)
Backtrace (CPU 6), Frame : Return Address
0xffffff93b1c8bb50 : 0xffffff8004ce5307
0xffffff93b1c8bbd0 : 0xffffff8004dc9986
0xffffff93b1c8bbe0 : 0xffffff8004d099eb
0xffffff93b1c8bc20 : 0xffffff7f85604899
0xffffff93b1c8bc50 : 0xffffff800519776b
0xffffff93b1c8bc90 : 0xffffff80051f336c
0xffffff93b1c8be00 : 0xffffff8005205fb3
0xffffff93b1c8bef0 : 0xffffff80052028a6
0xffffff93b1c8bf60 : 0xffffff800522afd1
0xffffff93b1c8bfb0 : 0xffffff8004df4b16
Run Code Online (Sandbox Code Playgroud)
我假设由于计算机经历了重启,因此地址转换现在是无用的,因为在每次启动迭代之后内存映射可能不同.
是否有任何选项可以将相关方法与回顾中的每个地址相匹配,或者事先设置适当的配置?谢谢
我的程序很恐慌,所以我按照它的建议运行RUST_BACKTRACE=1,我得到了这个(只是一个小片段).
1: 0x800c05b5 - std::sys::imp::backtrace::tracing::imp::write::hf33ae72d0baa11ed
at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
2: 0x800c22ed - std::panicking::default_hook::{{closure}}::h59672b733cc6a455
at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:351
Run Code Online (Sandbox Code Playgroud)
如果程序发生恐慌,它会停止整个程序,那么我在哪里可以弄清楚它在恐慌的哪一行?
这条线告诉我第42行和第351行有问题吗?
整个回溯都在这张图片上,我觉得将它复制并粘贴在这里会很麻烦.
我从未听说过堆栈跟踪或后跟踪.我正在编译警告,但我不知道调试符号是什么.