问题标签 [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 投票
3 回答
628 浏览

c++ - 回溯中在 _start 和 main 之前看到的函数调用

我从一位同事那里收到了我的程序(在 RHEL 5.3 上运行的 qt 应用程序)的回溯,当我分析它时,我发现了一些我无法解释的东西。如果查看此回溯,您会注意到 main 和 _start 的跟踪。但在此之前,我们会在我的程序中看到 _ZN19datalog_render_area9prepStripEh 和 _ZN12QMutexLockerD1Ev。我怎样才能看到我的一些函数在 _start 和 main 之前被调用。那不是不可能吗?(请原谅我的回溯布局)

...程序外的函数调用

0 投票
3 回答
1537 浏览

php - PHP - 我想知道如何获取函数跟踪

有没有办法知道在我的代码中的某个点之前调用了所有以前的函数?例如:我在项目的 abc.php 中设置了一个点,我想获取在达到该点之前调用的所有函数。debug_backtrace() 在这里没有帮助。非常感谢 :)

0 投票
3 回答
20948 浏览

javascript - Javascript 回溯

如何在 Javascript 中获得回溯?

理想特点:

  • 入口函数名称,或匿名函数的一些有意义的标识符,
  • 每个级别的参数列表,
  • 行号。

这可以在标准 ECMAScript 中完成吗?

如果没有,是否可以在常见的网络浏览器方言中完成?

谢谢。

编辑 -

感谢您的建议。

我的方言不支持arguments.callerarguments.callee

我可以做这个:

这让我得到了字符串形式的信息,这对于一目了然是可以的,但是对 walk 会有很大的帮助e.stack。它有标准格式吗?

再次感谢。

0 投票
2 回答
3451 浏览

c++ - GDB 无法显示堆栈并显示“#1 0x0000000000000000 in ?? ()”

我有一个多线程 C++ 程序,在极少数情况下会死锁。这个问题很难重现,我只能在远程机器上重现它。我想用来解决这个问题的方法是

  1. 运行程序
  2. 等待死锁
  3. 向其发送中止信号以生成核心转储
  4. 将转储复制回我的本地计算机
  5. 使用 gdb 调试它

我在远程机器上没有 gdb,也无法在上面安装任何东西。问题是当我调试核心转储(从远程机器上的死锁或正常运行的进程获得)时,大多数线程的回溯只显示:

我正在使用使用“-g -O1”选项编译的静态链接二进制文件。当我在本地机器上中止相同二进制文件的进程时,gdb 可以从核心转储中提取整个堆栈,并且没有这样的问题(但是我无法重现死锁)。我的远程机器是 SLES,我的本地机器是 ubuntu。

任何的想法?

编辑:

发现其他人有同样的问题,但仍然没有解决方案: http ://groups.google.com/group/google-coredumper/browse_thread/thread/2ca9bcf9465d1050 (我没有使用google coredumper,但似乎google coredumper失败了有同样的错误,这表明问题可能出在 SLES 11 上)

0 投票
2 回答
3816 浏览

php - 为什么 PHPUnit 隐藏我的 xdebug 回溯?

我安装了 PHPUnit 和 xdebug,在我的 CLI 的 php.ini 文件中,我得到了:

我已经验证了当我使用交互式控制台创建错误时会打印 xdebug 回溯,但是当运行 phpunit 时发生错误时,没有回溯?

回溯发生了什么?phpunit 对我隐瞒了吗?我缺少一些设置吗?

谢谢!

0 投票
5 回答
71309 浏览

c - 如何让 backtrace()/backtrace_symbols() 打印函数名?

Linux 特定backtrace()backtrace_symbols()允许您生成程序的调用跟踪。但是,它只打印函数地址,而不是我的程序的名称。我怎样才能让他们也打印函数名称?我试过用 和 编译-g程序-ggdb。下面的测试用例只是打印这个:

我希望前两项也显示函数名称,foo并且main

代码:

0 投票
3 回答
1268 浏览

c++ - 命名空间中的堆栈跟踪和函数

我试图在我的(c++)程序执行的某个时刻获得回溯。

为此,我正在使用回溯和回溯_符号。沿着这条线的东西:

它可以工作,但缺少一些函数名称。例子:

函数 0 到 8 有一个共同点:它们都位于命名空间中……
我尝试将函数 9 放入匿名命名空间中(没有任何其他修改),它从回溯中消失了……现在看起来像这样:

有没有办法解决这个问题?

ps:g++版本:g++ (GCC) 4.6.0 20110530 (Red Hat 4.6.0-9)

在 Code Monkey 备注
edit2添加函数
edit3的完整代码后编辑固定的最大回溯深度该代码使用 -O0 -g3 编译并与 -rdynamic 链接

0 投票
2 回答
2304 浏览

debugging - Can not get any information from gdb backtrace

I have a release version server process running under linux 64-bit systems. It got crashed and left a coredump file. I use gdb to debug it like this:

gdb svr coredump file

And got the following backtraces:

The address info can not be analyzed by addr2line, what is the problem and how can I find what is the root cause of coredump?

Thanks!

0 投票
2 回答
346 浏览

c - 如何编写我自己的打印回溯的函数

如何编写一个 C 函数来打印回溯,直到调用该函数。我不想使用任何库。我想编写自己的代码来完成这项工作。
任何人都可以请输入来完成这项任务吗?

0 投票
2 回答
603 浏览

php - 表单帖子的 PHP 跟踪

一点背景知识,我有一个客户端,它有一个在过去 12 个月内转换为 python/django 的遗留 php 站点。然而,他们在逐步淘汰它的同时仍在使用 php 站点。一些新数据仍然从用户那里收集在旧系统和数据库结构中,但客户希望它也可以在新站点上使用,这意味着在 php 代码中插入另一个 mysql insert 语句以写入新站点的数据库。

所以问题是 php 开发人员已经消失并且无法访问。此外,代码在多个目录中的每个 php 文件的多个版本中都是一团糟,零版本控制。所以我可以找到写入数据库的代码片段,但它在 20 多个地方。我想做的是与 django 类似的东西,在 POST 时在表单代码中插入一个“断言错误”行,然后查看 django 错误报告回溯页面,但这是 php.ini 文件。那么我在这里最好的选择是什么?请记住,我首先是一名 python 开发人员,充其量是一名 php hack。php 中是否有任何内置的东西可以让我在没有太多黑客攻击的情况下看到某种类型的回溯?