/* Target-dependent code for OpenBSD/i386.
- Copyright (C) 1988, 1989, 1991, 1992, 1994, 1996, 2000, 2001, 2002,
- 2003, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1988, 1989, 1991, 1992, 1994, 1996, 2000, 2001, 2002, 2003,
+ 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GDB.
cache = trad_frame_cache_zalloc (next_frame);
*this_cache = cache;
- func = frame_func_unwind (next_frame);
+ /* NORMAL_FRAME matches the type in i386obsd_trapframe_unwind, but
+ SIGTRAMP_FRAME might be more appropriate. */
+ func = frame_func_unwind (next_frame, NORMAL_FRAME);
sp = frame_unwind_register_unsigned (next_frame, I386_ESP_REGNUM);
find_pc_partial_function (func, &name, NULL, NULL);
return 0;
find_pc_partial_function (frame_pc_unwind (next_frame), &name, NULL, NULL);
- return (name && ((strcmp (name, "calltrap") == 0)
- || (strcmp (name, "syscall1") == 0)
- || (strncmp (name, "Xintr", 5) == 0)));
+ return (name && (strcmp (name, "calltrap") == 0
+ || strcmp (name, "syscall1") == 0
+ || strncmp (name, "Xintr", 5) == 0
+ || strncmp (name, "Xsoft", 5) == 0));
}
static const struct frame_unwind i386obsd_trapframe_unwind = {