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

c - 为什么strace或者ltrace不能拦截rand函数

我以下面的 C 程序为例::

strace不能ltrace检测到srandorrand调用。这是为什么?

0 投票
1 回答
788 浏览

c - ltrace 的替代方案,它适用于与 `-z now` 链接的二进制文件?

ltrace不适用于与-z nowoption链接的二进制文件,这是我的 Ubuntu 19.10 系统上的默认设置。它仅适用于与-z lazy.

是否有任何替代方法可以ltrace完成相同的工作,但now也适用于二进制文件?

0 投票
0 回答
308 浏览

cross-compiling - 'ltrace' 的交叉编译失败并显示“错误:在您的系统中找不到 libelf.h 或 gelf.h”,尽管它位于 /usr/local/include 中

所以我有一个 x86_64 拱门,我需要为 aarch64 (arm) 编译。我有libelf.hand gelf.hin /usr/local/include,它应该被 gcc 自动包含。我也尝试导出CPPFLAGS=-I/usr/local/include/libelf或使用with-libelfltraceconfigure文件的参数,但标题中总是出现相同的错误。

有任何想法吗?我之前用 strace 成功地完成了类似的交叉编译,所以我真的很难理解这里出了什么问题。

提前致谢

0 投票
3 回答
573 浏览

c - 有没有办法找到 ac 程序中使用的所有函数?

我有一个c包含多个文件的巨大(夸张)程序的源代码。我希望是否有任何方法可以找到程序中使用(声明和调用)的所有函数(标准和内置)。我知道我可以通过首先将输出重定向到文件然后使用来选择函数调用来编译它function并使用and之system calls类的工具对其进行编译和跟踪。或者我可以在所有文件的 shell 上使用正则表达式,但我还不知道正则表达式。那么有没有人知道一种工具可以帮助我快速找到ac程序中调用和声明的所有函数?ltracestracegrep

0 投票
2 回答
752 浏览

c - 如何使用 ltrace 跟踪动态加载的库调用

我有一个 C 程序使用动态加载的库来加载插件。我想跟踪库调用以调试插件的加载。

我看了看ltrace,但我似乎无法让它工作:

这是一个示例程序:

编译(并删除PIE,否则 ltrace 将看不到任何内容): gcc main.c -pg -ldl -no-pie

跑步:ltrace ./a.out

输出

如您所见,呼叫cos被跳过。我怎样才能用那个论点来追踪呢?

我试了一下uftrace

但同样,它不会跟踪cos调用:

这很令人惊讶,因为在这个评论中它看起来很有效。

在 Ubuntu 20.04 上运行

  • 跟踪:0.7.3
  • 跟踪:0.9.3

谢谢您的帮助 !

0 投票
1 回答
54 浏览

linux - 空环境变量名

我在 Ubuntu 20.04 中调试一个应用程序:

我想知道涉及哪些环境变量及其各自的值。当我意识到有一个没有值的“空名称变量”时,我感到很惊讶。有 ltrace 输出:

有谁知道这可能是什么?有一种方法可以给环境变量一个空值吗?

0 投票
0 回答
59 浏览

linux - What could be the interpretation of these strace outputs?

I have a problem with a calculus software in Linux (Ubuntu 20.04). When I submit a calculus, the work is performed perfectly. The log file indicates that everything was completed successfully and all the results are perfect.

The problem arises when I try to submit another calculus: the numerical modulus stills busy. So, I traced the PID of the process with strace -p PID. This is the output:

And it goes on to infinite printing clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=2, tv_nsec=0}, 0x7fff57f793a0) = 0

Is there some useful information? What could this result be saying?

0 投票
0 回答
62 浏览

strace - 如何将 LD_PRELOAD 与 strace/ltrace 结合使用?

我试图转储程序调用的系统调用的顺序foo

foo执行如下:

我还没有找到通过ltrace或strace实现的方法,我可以通过这些工具来实现吗?

0 投票
0 回答
48 浏览

debugging - ltrace 不显示对库的所有调用

我正在使用专有的 3rd 方库在 x86 上使用 Ubuntu Linux。这个库使用线程。这是一个带有 C++ 包装器的 C 库,但仅记录了 C++ API,并且给定的示例程序仅使用 C++ API - 但是,我想使用 C API。由于大多数(甚至全部?)C++ 代码似乎都在头文件中,所以我可以查找“幕后”的 C 调用并编写我的 C 代码。不幸的是,有些东西在我的代码中不起作用,所以我尝试ltrace使用示例程序来查看究竟做了什么 C 调用以及以什么顺序:

但是,它只显示了一些 C 调用,而不是全部。实际上,看起来这些调用甚至不是从 C++ 接口进行的(根据gdb至少其中一个是由 C API 函数之一在内部进行的)。lib3rdparty.so没有符号表:

为什么不ltrace显示所有通话,只显示一些?我需要启用某些东西吗?我将尝试从gdb会话中收集 C 调用,但随着网络连接的建立,恐怕我会遇到超时。还有其他方法可以记录对特定库进行的调用吗?

0 投票
0 回答
29 浏览

linux - 如何为 mipsel 构建 ltrace?

我已经下载了静态gdbserver : gdbserver-7.12-mipsel-i-v1-sysv,并且在我的设备上运行良好。

如何ltrace为同一个拱门构建或下载?