我有一个任务,我必须使用ptrace来跟踪应用程序的系统调用。 问题是,当我运行程序时,它给了我一些不常见的值,我从寄存器获得的值作为输出。其中一些值是负数。
以下是代码:http://pastebin.com/iMXYmqG6 以下是一些示例输出:http://pastebin.com/bVa5vnWT
如果有人能就我的错误给我一些指示,我将非常感激。
P.S。我正在使用64位操作系统,但我正在构建一个32位应用程序(这是对分配的限制。)
答案 0 :(得分:1)
当您使用64位操作系统时,您必须使用64位兼容的寄存器。即,RAX,ORIG_EAX,EBX,EBX .....如果不是,你将得到垃圾值