- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个脚本,它使用这样的命令文件运行 gdb:
set logging file file_name
set logging on
thread apply all bt
q
y
为什么 pstack 比这个脚本快得多?我可以用 gdb 以某种方式达到那种牢度吗?
编辑:区别在于 gdb 版本。我使用 gdb-7.10,转储堆栈跟踪大约需要 14 秒。使用 pstack 使用的 gdb 7.0.1,需要 2 秒。 gdb-7.10 大部分时间都花在了从我们的库中加载符号上,而我在新版本中找不到适合 -readnever
的选项。
最佳答案
在我的系统上,至少 pstack
是一个运行 gdb 的 shell 脚本,因此您可以通过查看 pstack
可执行文件来准确了解正在运行的内容。
我怀疑脚本中有趣的部分可能是:
set width 0
set height 0
set pagination no
其实set pagination no
和set height 0
是一样的,所以你可以忘记set pagination no
部分。
set height 0
和 set width 0
关闭 gdb 显示包装到终端宽度的输出的任何尝试,并一次显示页面。
我希望每次 gdb 打印任何内容时,这种换行和一次输出一页都会导致大量额外处理。
pstack
脚本中没有太多与您的脚本不同的地方,所以我看不出还有什么不同。
关于linux - 为什么 pstack 比仅附加、保存堆栈和退出的 gdb 快得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522551/
我很好奇 pstack 命令如何打印在 PID 下运行的所有线程的堆栈跟踪? 它必须与 gdb 的方式有所不同,因为进程在 gdb 环境中运行,但是 pstack 在进程执行后执行。 最佳答案 它与
我一直在使用 pstack(在循环中定期调用)作为真正的分析工具的替代品。我注意到,即使顶部的那个 pid 有超过 85% 的 cpu 使用率,pstack 显示 pid 在 I/O 上被阻塞的频率比
我正在尝试使用 pstack 打印特定进程的所有线程的堆栈跟踪,但我只得到主线程。 根据pstack的描述: pstack - 打印正在运行的进程的堆栈跟踪 ... 如果进程是线程组的一部分,则 ps
我们有一个今天卡住的生产 java 进程。我们进行了一些系统检查,如磁盘空间检查、内存争用等。我们猜测进程陷入了死锁,因此在我们反弹进程之前,我们在 pid 上运行了 pstack 命令。我无法从输出
我的操作系统是RHEL 7,我运行一个简单的Go程序: package main import ( "time" ) func main() { time.Sleep(1000 * t
我在我的 C++ 代码中使用 pstack 命令并将其存储在字符串中。问题是它打印堆栈到最后一个函数并且字符串变得非常重。有没有办法使用 pstack 只打印堆栈的最后 n 行? 如果使用pstack
我正在追踪一个奇怪的错误,我有一个线索,但我不知道它意味着什么。 我有一个在 RH5 工作站上运行的使用 OpenGL 和 Motif 的程序。在两台机器上,程序需要 5 分钟左右才能启动,而在所有其
我正在尝试调试在特定时间死锁/卡住的 .NET 应用程序。有没有办法查看应用程序卡住时正在做什么?我假设 Visual Studio 提供了一些在附加到应用程序后查看堆栈跟踪的方法? (我确实尝试了
在一些非常小的 Linux 上,当无法插入任何日志并且没有 pstack 和 gdb 时,是否有一种方法可以获取有关程序卡住原因的信息? 最佳答案 我的建议是: 能够在您自己的程序中检索和打印堆栈跟踪
我有一个脚本,它使用这样的命令文件运行 gdb: set logging file file_name set logging on thread apply all bt q y 为什么 pstac
如何破坏共享库? 我有一个附加到多个共享库的进程。一个 Action ,例如 createObject1 可以达到 99%,但只有 1% 会创建一个 pstack。该问题不易重现,有时会实时发生。 共
在linux上我们一般为了查看给定时间的进程栈 pstack 我想知道 osx 中的相同内容是什么。 谢谢 最佳答案 sudo /usr/libexec/stackshot -i -u -p 这会
接受极端 mock 的可能性,我必须承认我真的很想念 sun Teamware 的文件合并工具。我已经从 solaris 切换到 red hat linux,发现自己经常缺少 filemerge(不要
我是一名优秀的程序员,十分优秀!