我正在尝试使用ptrace来跟踪由单独进程进行的所有系统调用,无论是32位(IA-32)还是64位(x86-64)。我的跟踪器将在启用IA-32仿真的64位x86安装上运行,但理想情况下能够跟踪64位和32位应用程序,包括64位应用程序是否fork并执行32位进程.问题是,由于32位和64位系统调用编号不同,我需要知道进程是32位还是64位以确定它使用了哪个系统调用,即使我有系统调用编号。好像有imperfectmethods,比如检查/proc//exec或者(像strace那样)寄存器结构的大小,但没有什么可靠的。使问题复杂化的是64位进程可以switchoutoflongmode
我正在尝试使用ptrace来跟踪由单独进程进行的所有系统调用,无论是32位(IA-32)还是64位(x86-64)。我的跟踪器将在启用IA-32仿真的64位x86安装上运行,但理想情况下能够跟踪64位和32位应用程序,包括64位应用程序是否fork并执行32位进程.问题是,由于32位和64位系统调用编号不同,我需要知道进程是32位还是64位以确定它使用了哪个系统调用,即使我有系统调用编号。好像有imperfectmethods,比如检查/proc//exec或者(像strace那样)寄存器结构的大小,但没有什么可靠的。使问题复杂化的是64位进程可以switchoutoflongmode
我正在为生成x86代码的JavaScriptJIT编译器实现后端。有时,由于错误,我会遇到段错误。很难追溯是什么原因造成的。因此,我一直想知道是否有一些“简单”的方法来捕获段错误和其他此类崩溃,并获取导致错误的指令的地址。这样,我就可以将地址映射回已编译的x86程序集,甚至可以映射回源代码。这需要在Linux上运行,但最好在任何POSIX兼容系统上运行。在最坏的情况下,如果我无法捕获段错误并在运行的JIT中获取IP,我希望能够将其捕获到外部(内核日志?),也许只是让编译器转储一个大文件将地址映射到指令,我可以将其与Python脚本或其他东西相匹配。任何想法/建议都将受到赞赏。如果您曾经
我正在为生成x86代码的JavaScriptJIT编译器实现后端。有时,由于错误,我会遇到段错误。很难追溯是什么原因造成的。因此,我一直想知道是否有一些“简单”的方法来捕获段错误和其他此类崩溃,并获取导致错误的指令的地址。这样,我就可以将地址映射回已编译的x86程序集,甚至可以映射回源代码。这需要在Linux上运行,但最好在任何POSIX兼容系统上运行。在最坏的情况下,如果我无法捕获段错误并在运行的JIT中获取IP,我希望能够将其捕获到外部(内核日志?),也许只是让编译器转储一个大文件将地址映射到指令,我可以将其与Python脚本或其他东西相匹配。任何想法/建议都将受到赞赏。如果您曾经
我可以使用新的x32ABI编译应用程序,然后在普通内核中运行它吗?运行时C库呢?预编译的x86/x86_64库是否有任何形式的互操作性? 最佳答案 没有。x32需要自己的一组库,就像x86和x86-64一样。就像您无法在仅提供x86-64库的系统上运行x86二进制文件一样,x32二进制文件也无法在仅提供x86和/或x86-64库的系统上运行。与x86和x86-64一样,x32是它自己的体系结构。当然,还必须在内核中启用支持。在未启用x32支持的情况下构建的内核将无法运行x32二进制文件。
我可以使用新的x32ABI编译应用程序,然后在普通内核中运行它吗?运行时C库呢?预编译的x86/x86_64库是否有任何形式的互操作性? 最佳答案 没有。x32需要自己的一组库,就像x86和x86-64一样。就像您无法在仅提供x86-64库的系统上运行x86二进制文件一样,x32二进制文件也无法在仅提供x86和/或x86-64库的系统上运行。与x86和x86-64一样,x32是它自己的体系结构。当然,还必须在内核中启用支持。在未启用x32支持的情况下构建的内核将无法运行x32二进制文件。
这个问题在这里已经有了答案:CorrectUserInput-x86LinuxAssembly(1个回答)关闭去年。希望这是一个简单的问题:首先,我想知道是否有人知道如何在Linux上使用x86NASMSyntaxAssembly获取用户输入。现在,我有:section.datagreet:db'Hello!',0Ah,'Whatisyourname?',0Ah;simplegreetinggreetL:equ$-greet;greetlengthcolorQ:db'Whatisyourfavoritecolor?';colorquestioncolorL:equ$-colorQ;co
这个问题在这里已经有了答案:CorrectUserInput-x86LinuxAssembly(1个回答)关闭去年。希望这是一个简单的问题:首先,我想知道是否有人知道如何在Linux上使用x86NASMSyntaxAssembly获取用户输入。现在,我有:section.datagreet:db'Hello!',0Ah,'Whatisyourname?',0Ah;simplegreetinggreetL:equ$-greet;greetlengthcolorQ:db'Whatisyourfavoritecolor?';colorquestioncolorL:equ$-colorQ;co
我已经尝试了所有的android模拟器,但他们都卡在了以下步骤:emulator:Errorwhileconnectingtosocket'127.0.0.1:1970':111->Connectionrefusedemulator:ASC127.0.0.1:1970:Retryingconnection.ConnectorFD=这是我的cli:path/to/emulator64-x86-avdx86-debugall这是myfulllog我的问题是如何修复这个错误?我的系统信息:NoLSBmodulesareavailable.DistributorID:LinuxMintDesc
我已经尝试了所有的android模拟器,但他们都卡在了以下步骤:emulator:Errorwhileconnectingtosocket'127.0.0.1:1970':111->Connectionrefusedemulator:ASC127.0.0.1:1970:Retryingconnection.ConnectorFD=这是我的cli:path/to/emulator64-x86-avdx86-debugall这是myfulllog我的问题是如何修复这个错误?我的系统信息:NoLSBmodulesareavailable.DistributorID:LinuxMintDesc