问题标签 [backtrace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5834 浏览

c# - Visual C# 回溯:如何知道 [外部代码] 所在的位置?

我正在使用 Visual c# 来调试一个大型 c# 项目。项目很大,只有部分pdb是我自己搭建的。我可以构建所有的 pdb,但它非常耗时。我正在调试回溯,但部分跟踪标有 [外部代码]。我知道缺少一些 pdb,但我怎么知道外部代码驻留在哪个 DLL 中?在 CI 中可以获取 EIP,然后查看过程映射以确定 EIP 所在的位置,但是如何在 .Net 环境中完成呢?

0 投票
2 回答
776 浏览

multithreading - Thread stack backtraces when program running under valgrind is interrupted

I have a server program, which doesn't have a very clean/graceful shutdown (not supposed to terminate in general). When tracing memory leaks, I run it under valgrind, but finally have to kill the process by a signal (^C). Generally I try to terminate the process when the ambiance is quiet but still then some threads might have been busy processing jobs and memory held by them cause false alarms. To assist such analysis, is there any way (tool) in valgrind, so that it can print the backtrace of threads when the program exits (by a signal?).

0 投票
10 回答
265489 浏览

php - 如何在 PHP 中获取调用函数/方法的名称?

我知道功能debug_backtrace,但我正在寻找一些现成的功能实现,比如GetCallingMethodName()?如果它也给出方法的类(如果它确实是一个方法),那将是完美的。

0 投票
2 回答
217 浏览

php - PHP:在正文内显示用户自定义错误

我想在我正在构建的某些界面中的许多地方抛出自定义错误。只需在我的函数中使用回显,就会在我的页面中的标签上方回显代码。所以,我构建了一个自定义函数来处理错误并给我一个回溯,但同样,它打印在我页面的上方。

这是我正在使用的功能:

如何让我的错误打印在我的页面标签内?

或者,有没有更好的方法来做到这一点?

0 投票
3 回答
7690 浏览

function - GDB 回溯不显示函数名称

我在 SunOS 5.10 上使用编译了我的库(特别是protbuf-2.3.0) 。-g -O0

make 日志中的示例行是这样的:

然后,我使用以下步骤附加了我的 gdb:

  1. 运行我的应用程序(在这种情况下,我的 Web 服务器启动了一个 Java Web 应用程序,该应用程序在启动期间通过 jni 使用库)。
  2. gdb -p XXX我通过(其中 XXX 是我从中获得的 pid )将我的 gdb 附加到该进程ps
  3. 然后我使用file libprotobuf.sogdb 提示符从 gdb 加载我的库。

但我看不到我的函数名称bt。我的 GDB 回溯命令显示如下:

我也试过只做 #1 & #2,只做 #1 & #3 和 #1 & gdb libprotobuf.so -p XXX

除此之外,我还尝试在调试模式下运行我的 jvm 并在命令上添加一个断点System.loadLibrary(..),然后在跳过该命令之后,我再次执行 gdb 附加过程......但仍然没有。

但是,我可以在给定函数名称的情况下放置断点,并通过list. 但是话又说回来,我可以放置断点,但它们不会在这些函数名称上停止(我知道它去了那个函数,因为它在每次 jvm 崩溃后的 jvm hs_err_pid 报告中)。

有什么想法没有显示我的函数名称吗?

0 投票
3 回答
1432 浏览

profiling - 自动化 gdb:每 10 毫秒显示一次回溯

我想为 gdb 编写一个脚本,它将backtrace每 10 毫秒保存(堆栈)进程。我怎样才能做到这一点?

它可以像“身无分文”的调用图分析(对于不能使用任何高级分析器的人)。

是的,有很多高级分析器。适用于流行的 CPU 和流行的操作系统。Shark 非常令人印象深刻且易于使用,但我想使用此类脚本获得基本功能,与 gdb 一起使用。

0 投票
1 回答
466 浏览

iphone - Xcode 调试器警告:找不到“_sigtramp”的最小界限 - 回溯可能不可靠

这是什么意思?当我在调试器中打开断点运行时,似乎偶尔会出现在控制台中。

0 投票
2 回答
6689 浏览

linux - 任何可用于 uclibc 的回溯移植?

我们在 ARM 9 上运行 uclibc linux。问题是 uclibc 不支持回溯。当核心转储发生时,我无法获取调用堆栈。

有没有人有一个好的解决方案?

例如,现有的 uclibc 回溯移植,或者在发生核心转储时获取调用堆栈的任何好方法(uclibc+ARM+Linux)?

0 投票
2 回答
1777 浏览

c++ - C++ 静态初始化在同一个回溯中出现两次是否正常?

我正在尝试调试使用 GCC 编译的 C++ 程序,该程序在启动时冻结。GCC 互斥锁保护函数的静态局部变量,似乎等待获取这样的锁是它冻结的原因。这是如何发生的相当令人困惑。第一个模块 A 的静态初始化发生(有 __static_init 函数 GCC 调用在回溯中可见),它调用具有静态局部变量的函数 Foo()。静态局部变量是一个对象,它的构造函数通过多层函数调用,然后突然回溯有几个??,然后在第二个模块B的静态初始化中(__static函数再次出现) ,然后调用 Foo(),但由于 Foo() 从未在本地静态变量上的互斥锁第一次仍然设置时返回,因此它锁定。

一个静态初始化如何触发另一个?我的第一个理论是共享库——模块 A 会调用模块 B 中的某个函数,这会导致模块 B 加载,从而触发 B 的静态初始化,但情况似乎并非如此。模块 A 根本不使用模块 B。所以我有第二个(也是可怕的)猜测。比如说:

  1. 模块 A 使用一些模板函数或模板类中的函数,例如foo<int>::bar()

  2. 模块 B 还使用foo<int>::bar()

  3. 模块 A 完全不依赖于模块 B

  4. 在链接时,链接器有两个实例foo<int>::bar(),但这没关系,因为模板函数被标记为弱符号......

  5. 在运行时,模块 A 调用foo<int>::bar,并且模块 B 的静态初始化被触发,即使模块 B 不依赖于模块 A!为什么?因为链接器决定在链接时使用模块 B 的 foo::bar 实例而不是模块 A 的实例。

这种特殊情况是否有效?或者一个模块的静态初始化不应该在另一个模块中触发静态初始化?

澄清: GCC 自动创建互斥锁以保护任何函数静态变量。我自己没有对互斥锁做任何事情。这是 GCC 使函数静态变量线程安全的方式。

更新:我知道翻译单元之间没有定义静态初始化,我不应该依赖订单。但我很好奇这是否是正常行为作为调试问题的线索。编译器生成执行此操作的代码是否正常,或者它是否可能表明 GCC 中的错误?

0 投票
1 回答
2195 浏览

debugging - 从内核调用跟踪中获取行号

我正在尝试调试似乎是完成队列问题:

是否可以将这些十六进制数字转换为接近行号的数字?