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

Hugh Dickins <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.debugging
Message-ID <[email protected]>
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;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.