问题标签 [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.
debugging - 使用 strace 和 ltrace 进行调试
我的程序挂了,我决定ltrace
这样strace
做。
在屏幕上给我一个“无限”的打印:
ltrace -p pid
给出相同的“无限”打印:
根据这些结果,我可以对程序发生的事情做出什么结论?
linux - why doesn't ltrace show gets(), puts()
On Ubuntu Yakkety Yak: 4.8.0-59-generic, I can't get ltrace to work. I expect it to show me gets() and puts() but it doesn't. What am I doing wrong?
ltrace - 为什么 ltrace 显示这么多参数和参数?
似乎 ltrace 显示的参数比函数提供的参数多,例如这个
为什么那里有 4 个参数,两个整数两个内存位置,而不是所有 Linuxgetauxval
似乎都支持的一个参数?读取 ltrace 输出的正确方法是什么?
linux - ltrace()如何显示rand()
当 ltrace 遇到 rand 函数时,它会显示 4 个参数,如下所示: rand(0, 0x5649bd4e6010, 0x7f0955490760, 0x7f09551cf7b0) = 0x17382962
rand 不接受任何参数。ltrace 在这里显示什么?
编辑添加示例:
使用 ltrace 编译并运行:
rand 显示的参数是什么?
什么是 0x7f6e22884620、0x7fffa0bf38ec、0x7f6e228840a4、0x7f6e2288411c?
google-chrome - “/usr/bin/google-chrome”不是 ELF 文件
我打算将 ltrace 用于某些应用程序,例如 chrome,但是当我使用它时,我收到以下错误消息。
有人知道解决方案吗?我想知道通过运行应用程序究竟调用了哪些函数。
谢谢,
debugging - ltrace 和 gdb 附加到同一进程
是否可以同时使用ltrace
和gdb
?我有一个小型的剥离二进制程序,我想在其中查看一些库调用的变量内容,我可以使用ltrace
.
是否可以将 gdb 和 ltrace 附加到同一个进程?
c - 无法从共享对象打印到文件
我以前在这里看到过与此类似的问题,但我无法从这些答案中解决我的问题。
我有一个文件libfoo.c
,我正在从中创建一个共享对象。使用 gcc's __attribute__((constructor))
,我想在加载此共享对象时向文件打印一条消息:
虚拟 malloc 实现(稍后将扩展)应在另一个虚拟程序中替换 stdlib.h 的 malloc,其源代码位于main.c
:
我正在编译和链接这两个文件,如下所示:
然后当我执行以下操作时,不会创建任何文件,也不会记录任何输出:
这里发生了什么?作为旁注:我如何尝试使用 ltrace 调试这样的问题?ltrace "LD_PRELOAD=... ./main"
不是一个有效的命令。
编辑:这里发生了什么?如果我在程序段错误内调用,它似乎至少printf
在共享对象内有效,但只能在设置函数内工作。在试图至少弄清楚连接到哪个终端时,我做了以下操作(在 setup 函数中):printf
malloc
stdout
这打印:
根据ttyname
手册页,第二行输出应该是不可能的。我在这里完全误解了什么吗?
ltrace - 如何让 ltrace -S 显示系统调用的所有参数?
我用来ltrace -S
查看系统调用dlopen
正在做什么,但后来我注意到它SYS_mmap
仅限于 4 个参数:
而它总共需要 6 个参数。特别是文件描述符,即第六个参数没有显示,这对我的分析至关重要。
有没有办法ltrace
展示我所有的论点?
在ltrace
0.7.3、Ubuntu 16.04 中测试。
c - 我如何找到该程序的许可证密钥?
我正在尝试为大学解决这个问题。我们必须“破解”一个程序,该程序缺少启动程序所需的许可证文件。我们只使用 Linux shell。
所以我已经做的是创建这个丢失的许可证文件。它是一个包含许可证持有者和许可证密钥的 .ini。我现在唯一要寻找的是正确的许可证密钥。任务说我们应该使用“strace”和“ltrace”来解决这个问题。这是我得到的输出:
所以我想答案就在最后的 memfrob 和 strncmp 函数中。但我不知道下一步是什么。
go - 如何在 Go 程序中使用 ltrace
我正在尝试调试 Go 上的内存问题,即 RSS 不断增加,通过 pprof 没有发现泄漏,很可能是由于 Go 在释放内存时没有将内存返回给操作系统(Go 中的经典 scavenger 问题:https://github .com/golang/go/issues/30333)
我试图了解内存是如何分配到堆中的,以及它们何时被释放。strace 到目前为止没有多大帮助,所以我正在尝试使用 ltrace
不幸的是,它立即使程序崩溃。任何想法如何在 go 程序中使用 ltrace?还是根本不可能?