【发布时间】:2013-04-24 00:39:20
【问题描述】:
我有一个任务,我必须使用 ptrace 来跟踪应用程序的系统调用。 问题是,当我运行程序时,它会给我一些不常见的值,这些值是我从寄存器中获得的,作为输出。其中一些值是负数。
这里是代码:http://pastebin.com/iMXYmqG6 这是一些示例输出:http://pastebin.com/bVa5vnWT
如果有人能给我一些关于我做错了什么的指导,我将不胜感激。
附:我正在开发一个 64 位操作系统,但我正在构建一个 32 位应用程序(这是对分配的限制。)
【问题讨论】:
-
可能随机的大数是因为调用需要的参数少于三个,不需要的就忽略了。
-
好吧,我还没有检查所有的调用,但至少 open、read 和 write 调用需要 3 个基于此站点 cs.lmu.edu/~ray/notes/linuxsyscalls 的参数,并且这些调用也会返回一些巨大的负数。
-
erm 我想我知道为什么会得到这些奇怪的值,这可能是因为我正在尝试使用 32 位调试器调试 64 位应用程序。会是这样吗?