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

Joe Korty <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.debugging
Message-ID <[email protected]>
On Sat, Apr 01, 2006 at 08:04:30PM +0300, Dan Aloni wrote:
> > Current versions are :-
> > 
> >   kdb-v4.4-2.6.16-common-1.bz2
> >   kdb-v4.4-2.6.16-i386-1.bz2
> >   kdb-v4.4-2.6.16-ia64-1.bz2
> 
> 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:

Problem is due to the mixed C/asm implementation of setjmp/longjmp.
Replace that with one written entirely in assemply and it will work.
Here's mine:

/* setjmp / longjmp for the kernel.
 * Inspired by the glibc version.
 */
	.text
	.globl	__kernel_setjmp
	.p2align 4
__kernel_setjmp:
	movq	%rbx,0x0(%rdi)
	movq	%rbp,0x8(%rdi)
	movq	%r12,0x10(%rdi)
	movq	%r13,0x18(%rdi)
	movq	%r14,0x20(%rdi)
	movq	%r15,0x28(%rdi)
	leaq	0x8(%rsp),%rdx
	movq	%rdx,0x30(%rdi)
	movq	(%rsp),%rax
	movq	%rax,0x38(%rdi)
	xorq	%rax,%rax
	ret

	.globl	__kernel_longjmp
__kernel_longjmp:
	movq	0x0(%rdi),%rbx
	movq	0x8(%rdi),%rbp
	movq	0x10(%rdi),%r12
	movq	0x18(%rdi),%r13
	movq	0x20(%rdi),%r14
	movq	0x28(%rdi),%r15
	test	%esi,%esi
	mov	$1,%eax
	cmove	%eax,%esi
	mov	%esi,%eax
	movq	0x38(%rdi),%rdx
	movq	0x30(%rdi),%rsp
	jmpq	*%rdx
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.