ptrace寄存器中返回的异常值

时间:2013-04-24 00:39:20

标签: c++ ptrace

我有一个任务,我必须使用ptrace来跟踪应用程序的系统调用。 问题是,当我运行程序时,它给了我一些不常见的值,我从寄存器获得的值作为输出。其中一些值是负数。

以下是代码:http://pastebin.com/iMXYmqG6 以下是一些示例输出:http://pastebin.com/bVa5vnWT

如果有人能就我的错误给我一些指示,我将非常感激。

P.S。我正在使用64位操作系统,但我正在构建一个32位应用程序(这是对分配的限制。)

1 个答案:

答案 0 :(得分:1)

当您使用64位操作系统时,您必须使用64位兼容的寄存器。即,RAX,ORIG_EAX,EBX,EBX .....如果不是,你将得到垃圾值