问题标签 [ltrace]

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 投票
1 回答
574 浏览

c - 为什么用 5 个参数调用我的 mprotect 函数?

根据mprotect 的 Linux 手册页,该函数有 3 个参数:

但是在我正在分析的程序上运行 ltrace 时,我看到 mprotect 是这样调用的:

第 4 和第 5 个论点是为了什么?

我正在使用 ltrace 0.5 版。和内核 2.6.24-24-generic

0 投票
4 回答
1343 浏览

linux - 我应该监控哪些进程间锁定调用?

我正在使用strace/监视一个进程,ltrace希望找到并拦截一个检查并可能激活某种全局共享锁的调用。

虽然我之前已经处理并阅读了 Linux 上几种形式的进程间锁定,但我对调用要查找的内容一无所知。

目前我唯一的怀疑是futex()在流程执行的早期出现。

更新0

我对自己的追求有些困惑。我正在监视现有进程以调用持久进程间内存或等效的 . 我想知道要查找的系统和库调用。我无意自己调用这些,所以自然futex()会出现,我相信很多库都会在这方面实现它们的锁定调用,等等。

更新1

我想要一个函数名称列表或文档链接,我应该在ltraceandstrace级别监视(并指定哪个)。任何其他关于如何跟踪和定位全局锁的好建议都会很棒。

0 投票
3 回答
1761 浏览

strace - strace/ltrace 输出不一致的信息

strace pwd

ltrace pwd

为什么第一个参数NULLltrace

似乎 strace/ltrace 都使用ptrace系统调用,但为什么它们得到不同的信息?

0 投票
2 回答
667 浏览

c++ - 简单 C++ 程序开始时的一系列 strcmp() 调用

我有一个简单的 C++ 程序:

我在玩“scratchbox”——我用来为 ARM 平台编译应用程序的交叉编译平台。我在诺基亚 N900 手机上运行它。

在调查一些性能问题时,我注意到一开始有几个对 strcmp() 的调用。我使用“ltrace”来跟踪库调用,当我在目标(我的手机)上运行它时,看到一系列对 strcmp() 的调用,这让我很好奇——这些调用的目的是什么?

0 投票
3 回答
3980 浏览

c - ltrace 和 strace 工具中的行号信息

是否可以查看行号和文件名(对于使用 ltrace/strace 运行的程序)以及库调用/系统调用信息。

例如:

ltrace 或任何其他工具: malloc(20) :: code.c::21

我已经尝试了 ltrace/strace 的所有选项,但无法找到获取此信息的方法。

如果不能通过 ltrace/strace,我们是否有任何适用于 GNU/Linux 的并行工具选项?

0 投票
2 回答
1741 浏览

android - 使用 ltrace 分析 Android 应用程序

我需要分析 android 应用程序的动态库调用,并决定为此目的使用“ltrace”工具进行分析。我将“ltrace”工具合并到android包中,然后一起编译成功。它适用于 shell 程序,就像通​​常的 linux 控制台应用程序一样。

但是,我无法正确分析从“Zygote”进程派生的 android 应用程序。我尝试将 ltrace 附加到“Zygote”进程以跟踪它的子进程,但我只收到 SIGCHLD 和 SIGSTOP 信号并异常终止,显示以下错误。

意外指令 0xffffffff 在 0xffff0508

我只是想知道是否有人曾经在 android 系统上尝试过这种分析。任何简短的评论都会对我很有帮助。

先感谢您。

0 投票
1 回答
652 浏览

debugging - ltrace 只打印两个调用

我在文字处理器上运行ltrace并打开了一个示例文件,但令人惊讶的是只得到了两个调用。

ltrace 不应该打印所有库调用吗?

0 投票
3 回答
3726 浏览

iphone - iphone:strace、dtruss、dtrace 还是同等产品?

有谁知道是否有类似strace、、dtrussdtrace用于 iPhone 的东西?

0 投票
2 回答
414 浏览

c++ - 如何从 ltrace 获取 C++ 堆分配的虚拟方法名称?

我已经为此苦苦挣扎了大约一天。

我能够构建一个简单的共享库和测试程序,当我在 ltrace 控制下运行它时,我可以获得静态、虚拟和纯虚拟方法的方法名称。

我使用 cmake 构建我的共享库。我有纯虚拟父类,有些方法会抛出异常。

当我在测试程序上运行 ltrace 时,我得到的唯一方法名来自静态方法。

相反,我看到很多这样的行:

使 VERBOSE=1 显示:

任何想法在哪里看?谢谢!

好的,这是交易。如果在堆上分配了一个对象,我看不到虚拟/纯虚拟方法。如果它在堆栈上,我会这样做:

有什么线索吗?

0 投票
1 回答
523 浏览

gdb - 监控linux动态库

我想监视(调试)一个用 C 语言编写的 linux 动态库。
我想看看何时以及将哪些参数传递给它。

监视“X”的库由另一个动态库“Y”调用。
“X”和“Y”都出现在可执行文件“A”的 /proc/pid/maps 中。

使用 ltrace,在可执行文件上没有显示 lib X 或 Y。
可执行文件正在使用多个线程。

此外,当在 exec 上使用 ldd 命令时,它没有提及任何关于 libs X 或 Y 的内容
。ldd Y,表明 Y 需要 X。

在所有库上使用 ldd,项目中的 exec 没有提到任何需要 Y 的人。
但 Y 似乎已加载到 exec 的 /proc/pid/maps 中。

我不确定我可以采取哪些步骤来调试 X lib,不胜感激。