Index: i386-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/i386-tdep.c,v retrieving revision 1.227 diff -u -p -r1.227 i386-tdep.c --- i386-tdep.c 3 Jan 2007 19:01:25 -0000 1.227 +++ i386-tdep.c 5 Jan 2007 14:22:11 -0000 @@ -497,6 +497,10 @@ static CORE_ADDR i386_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache) { + /* The register used by the compiler to perform the stack re-alignment + is, in order of preference, either %ecx, %edx, or %eax. GCC should + never use %ebx as it always treats it as callee-saved, whereas + the compiler can only use caller-saved registers. */ static const gdb_byte insns_ecx[10] = { 0x8d, 0x4c, 0x24, 0x04, /* leal 4(%esp), %ecx */ 0x83, 0xe4, 0xf0, /* andl $-16, %esp */