У меня есть простая программа x86 АссамблеиGDB точки останова поведения между с и без *
.data
HelloWorld:
.ascii "Hello World!"
ByteLocation:
.byte 10
Int32:
.int 2
Int16:
.short 3
Float:
.float 10.23
IntegerArray:
.int 10,20,30,40,50
.bss
.comm LargeBuffer, 10000
.text
.globl _start
_start:
nop
# Exit syscall to exit the program
movl $1, %eax
movl $0, %ebx
int $0x80
Я скомпилировал и запустить его в БГД. Тогда я попытался установить точку останова для
movl $1, %eax
Я использую:
(gdb)break *_start + 1
Breakpoint 1 at 0x4000b1: file VariableDemo.s, line 33.
Это прекрасно работает. Но если я пробовал:
(gdb) break _start + 1
Function "_start + 1" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
В чем разница между и без * в этом случае? Также почему вторая команда прерывания gdb спрашивает меня об общей библиотеке?