在 Red hat 中编译时出现分段错误,但在 ubuntu 中工作正常

发布于 2024-12-06 19:33:35 字数 344 浏览 0 评论 0原文

这是我正在执行的代码。它在带有 NASM 2.08 的 ubuntu 上给出了所需的输出,但在使用运行 NASM 0.98.22 的 Red Hat 7.3 编译时给出了分段错误 有人可以帮助我告诉我如何确保它在红帽上也能正常运行吗?

section .data

section .text
    global _start
_start:

xor eax,eax
cdq
push eax
push long 0x68732f2f
push long 0x6e69622f
mov ebx,esp
push eax
push eax
mov ecx,esp
mov al,0xb
push eax
int 0x80

Here is a code that i am executing. its giving the desired output on ubuntu with NASM 2.08 but gives a segmentation fault when compiled with Red Hat 7.3 running NASM 0.98.22
Can someone help me by telling how i can make sure it runs fine on red hat too.

section .data

section .text
    global _start
_start:

xor eax,eax
cdq
push eax
push long 0x68732f2f
push long 0x6e69622f
mov ebx,esp
push eax
push eax
mov ecx,esp
mov al,0xb
push eax
int 0x80

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怎樣才叫好 2024-12-13 19:33:35

您的代码是 32 位的,因此当您构建它时,您需要确保构建一个 32 位可执行文件。默认情况下,这将在 32 位操作系统上发生,但您可能需要像 -m32 这样的开关才能在 64 位操作系统上实现此目的。

Your code is 32 bit so when you build it you need to make sure that you build a 32 bit executable. This will happen by default on your 32 bit OS but you probably need a switch like -m32 to achieve this on a 64 bit OS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文