重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我这里是ubuntu x86-64,照着抄你的代码运行非常正常。
成都创新互联主营梅里斯网站建设的网络公司,主营网站建设方案,成都APP应用开发,梅里斯h5重庆小程序开发公司搭建,梅里斯网站营销推广欢迎梅里斯等地区企业咨询
编译运行:
as run.s -o run.o
ld run.o -o run
./run
GDB调试也没问题
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later ;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
;.
Find the GDB manual and other documentation resources online at:
;.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from run...done.
(gdb) b _start
Breakpoint 1 at 0x400078: file run.s, line 6.
(gdb) r
Starting program: /home/×××××××/Desktop/run
Breakpoint 1, _start () at run.s:6
6 movl $1, %eax
(gdb) ni
7 movl $0, %ebx
(gdb) ni
8 int $0x80
(gdb) ni
[Inferior 1 (process 10617) exited normally]
(gdb) b _start
linux中的“段错误”通常是由内存分配失败或指针误指引起!
请检查程序中内存分配语句及其释放过程是否合理!
出段错误是一件好事。。。说明你的代码在指针这里出了问题。。。最怕的是编译过了但是程序跑飞了的这种逻辑错误。。改都不知道怎么改。。。出段错误 你在程序里你觉得肯能有错的地方加上行打印 printf("%d\n",__LINE__); 或是隔几行加一个。。然后看程序死在那了。