/* Target-dependent code for OpenBSD/i386.
- Copyright (C) 1988-2019 Free Software Foundation, Inc.
+ Copyright (C) 1988-2021 Free Software Foundation, Inc.
This file is part of GDB.
{
/* If we can't read the instructions, return zero. */
if (!safe_frame_unwind_memory (this_frame, start_pc + *offset,
- buf, buflen))
+ {buf, buflen}))
return 0;
/* Check for sigreturn(2). */
sp = read_memory_unsigned_integer (sp_addr, 4, byte_order);
/* Adjust the stack pointer such that it looks as if we just
- returned from _thread_machdep_switch. */
+ returned from _thread_machdep_switch. */
offset = i386obsd_uthread_reg_offset[I386_EIP_REGNUM] + 4;
store_unsigned_integer (buf, 4, byte_order, sp + offset);
regcache->raw_supply (I386_ESP_REGNUM, buf);
&& (regnum == -1 || regnum == i))
{
/* Fetch stack pointer from thread structure (if we didn't
- do so already). */
+ do so already). */
if (sp == 0)
sp = read_memory_unsigned_integer (sp_addr, 4, byte_order);
int offset;
/* Calculate the stack pointer (frame pointer) that will be
- stored into the thread structure. */
+ stored into the thread structure. */
offset = i386obsd_uthread_reg_offset[I386_EIP_REGNUM] + 4;
regcache->raw_collect (I386_ESP_REGNUM, buf);
sp = extract_unsigned_integer (buf, 4, byte_order) - offset;
write_memory_unsigned_integer (sp_addr, 4, byte_order, sp);
/* The stack pointer was (potentially) modified. Make sure we
- build a proper stack frame. */
+ build a proper stack frame. */
regnum = -1;
}
&& (regnum == -1 || regnum == i))
{
/* Fetch stack pointer from thread structure (if we didn't
- calculate it already). */
+ calculate it already). */
if (sp == 0)
sp = read_memory_unsigned_integer (sp_addr, 4, byte_order);
}
static const struct frame_unwind i386obsd_trapframe_unwind = {
+ "i386 openbsd trap",
/* FIXME: kettenis/20051219: This really is more like an interrupt
frame, but SIGTRAMP_FRAME would print <signal handler called>,
which really is not what we want here. */
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
}
+void _initialize_i386obsd_tdep ();
void
-_initialize_i386obsd_tdep (void)
+_initialize_i386obsd_tdep ()
{
gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_OPENBSD,
i386obsd_init_abi);