kdb
[Top] [All Lists]

The new bt algorithm is not really effective

To: KDB <kdb@xxxxxxxxxxx>
Subject: The new bt algorithm is not really effective
From: "jidong xiao" <jidong.xiao@xxxxxxxxx>
Date: Wed, 7 Jan 2009 16:18:57 +0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=dnpS0x+Z0Fd7M6Ypb23jDGk+osOCj03csoeFJL3Kukc=; b=EAoIvGAoVVen55zJ0/aX7UnSRRPr7N8gQdfG/wjj1k8KETrrnwWhWka3gL6moRJG3h GGcbcALrnmQb+9zEUPEWOBOp7pjO6l+sR6VLxPowpBtoaYBDbZe6sa5CCXUctwWtEjPE ddveLVXupX3rojW2e9uLFBDTnsxZttWOaApEk=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=mjaI++RlGU62PTeKEyArv+TvPKPhjlkdYuWFdcqVpiq/QC5GInxrj7vXOQ5g6osfED oWGUA38EfiWNvXfsIuPZBH3+X6rMwOKHwVrR6w57+nUnIWmFmz7h4aD3lSSX2B1NYjE/ vugFaCZzaSUYObdDjkcZRU1SSK3bmqI92Qkno=
Compared to the old bt code, Keith Owen's new bt algorithm is intended
to show function parameters even though they are passed in registers
rather than stack. But the bt result includes too many "invalid"
there. Here is an example:

[6]kdb> bt
Stack traceback for pid 4563
0xffff8102298e4e30     4563        1  1    5   R  0xffff8102298e5178 *atd
sp                ip                Function (args)
0xffff8102215b7e10 0xffffffff80288577 getname (0x7fa31fbc145e)
0xffff8102215b7e10 0xffffffff8028a132 __user_walk_fd+0x19 (invalid,
invalid, invalid, 0xffff8102)
0xffff8102215b7e40 0xffffffff8028366b vfs_stat_fd+0x1b (invalid,
invalid, 0xffff8102215b7ef8)
0xffff8102215b7ef0 0xffffffff80283834 sys_newstat+0x19 (invalid, 0x7fff27bc1630)
0xffff8102215b7f80 0xffffffff8020bd8b system_call_after_swapgs+0x7b
(invalid, invalid, invalid, )
[6]kdb>

Only a few parameters are printed, too many parameters are actually
"missing", this result in most cases is not really sufficient for
developers to solve real problem.

In fact I read through the code of this algorithm, I feel the idea to
trace every block and every instructions is very good, but I wonder
are there still any possibilities to improve this situation, say,
capture more parameters and print them out.If we can get/print most of
the parameters, if not all, that would be really perfect.

Do any one have more ideas about this?

Regards
Jason

<Prev in Thread] Current Thread [Next in Thread>