Re: Announce: kdb v4.4 is available for kernel 2.6.16

From: Hugh Dickins
Date: Sat Apr 01 2006 - 15:35:37 EST


On Sat, 1 Apr 2006, Dan Aloni wrote:
>
> Thanks for this new version, however I'm looking forward to see
> kdb maintained also for the x86_64 architecture. Currently I have
> got as far as forward-porting it to a level where it "works" except
> for one annoying issue where setjmp/longjmp looks to be broken:
>
> Kernel configured with CONFIG_FRAME_POINTER=y,

I've not tried latest kdb, but you should find the patch below still
works (removing that unnecessary KDB_STATE_SET(LONGJMP) is probably
irrelevant, just something I did on the way, and which does no harm).

Hugh

--- 2.6.13-kdb/arch/x86_64/kdb/kdbasupport.c 2005-09-09 12:34:43.000000000 +0100
+++ fixed/arch/x86_64/kdb/kdbasupport.c 2005-08-30 15:10:20.000000000 +0100
@@ -1035,14 +1004,15 @@ kdba_setjmp(kdb_jmp_buf *jb)
{
#if defined(CONFIG_FRAME_POINTER)
__asm__("movq %rbx, (0*8)(%rdi);"
- "movq %rbp, (1*8)(%rdi);"
+ "movq (%rsp), %rax;"
+ "movq %rax, (1*8)(%rdi);"
"movq %r12, (2*8)(%rdi);"
"movq %r13, (3*8)(%rdi);"
"movq %r14, (4*8)(%rdi);"
"movq %r15, (5*8)(%rdi);"
"leaq 16(%rsp), %rdx;"
"movq %rdx, (6*8)(%rdi);"
- "movq (%rsp), %rax;"
+ "movq 8(%rsp), %rax;"
"movq %rax, (7*8)(%rdi)");
#else /* CONFIG_FRAME_POINTER */
__asm__("movq %rbx, (0*8)(%rdi);"
@@ -1056,7 +1026,6 @@ kdba_setjmp(kdb_jmp_buf *jb)
"movq (%rsp), %rax;"
"movq %rax, (7*8)(%rdi)");
#endif /* CONFIG_FRAME_POINTER */
- KDB_STATE_SET(LONGJMP);
return 0;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/