/* This test used to cause an assertion in the address space manager */ __attribute__((noinline)) static void inner(void) { /* Set other registers to apriori known values. */ __asm__ __volatile__( "movl $0x101, %%eax\n" "movl $0x102, %%ebx\n" "movl $0x103, %%ecx\n" "movl $0x104, %%edx\n" "movl $0x105, %%esi\n" "movl $0x106, %%edi\n" // not %ebp as mdb is then not able to reconstruct stack trace "movl $0x108, %%esp\n" "movl $0x1234, (%%eax)\n" // should cause SEGV here "ud2" // should never get here : // no output registers : // no input registers : "memory", "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi", "%esp"); } __attribute__((noinline)) static void outer(void) { inner(); } int main(int argc, const char *argv[]) { outer(); return 0; }