diff for duplicates of <20110921133307.GD2872@arm.com> diff --git a/a/1.txt b/N1/1.txt index 9a8c514..b2c2d38 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -39,35 +39,3 @@ function's state saving code has already executed. It might be simple to work around this particular case by making the unwinder intelligent enough to realise that if backtracing from the first instruction of a function, none of the function's state save code can have executed yet. ->From any other location though, it's not so simple. It may also do the -wrong thing for functions where the entry point is not at the start of -the function body (or where there are loops or multiple entry points) --- I expect such instances to be pretty rare though, and this should -never happen for C. - -Tricks like this are no good for reconstructing what happened on the -path up to an unexpected event like an exception, though. This is -possible only when certain assumptions are made and the faulting -function has a sufficiently simple structure. This can work most of -the time, but it's hard to make it watertight -- this is one reason why -backtracing in gdb is still far from foolproof. - -Alternatively, we would need to use some other frame description format -such as DWARF, which would involve building everything with debug, and -keeping the .debug_frame content (possibly with some filtering/post- -processing). Unwind annotations in .S files would presumably need to be -rewritten to use the .cfi_ dierctives instead of the ARM-specific -directives in order for this to work everywhere. Apparently there were -some patches around for using DWARF for backtracing in the kernel some -years ago, but they didn't get merged. - - - -...all of which means that making unwinding work _perfectly_ probably -involves significant pain, at least for Thumb-2. - -I guess the question would be: how many failed backtraces are we getting -right now? Is the current unwinder behaviour "good enough"? - -Cheers ----Dave diff --git a/a/content_digest b/N1/content_digest index 1390836..1bea834 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,16 +3,10 @@ "ref\02285dff3fee56758b6279062a5a30dc7.squirrel@www.codeaurora.org\0" "ref\020110921113906.GB2872@arm.com\0" "ref\020110921115553.GF17169@n2100.arm.linux.org.uk\0" - "From\0Dave Martin <dave.martin@linaro.org>\0" - "Subject\0Re: [PATCH] arm: Add unwinding annotations for 64bit division functions\0" + "From\0dave.martin@linaro.org (Dave Martin)\0" + "Subject\0[PATCH] arm: Add unwinding annotations for 64bit division functions\0" "Date\0Wed, 21 Sep 2011 14:33:07 +0100\0" - "To\0Russell King - ARM Linux <linux@arm.linux.org.uk>\0" - "Cc\0Laura Abbott <lauraa@codeaurora.org>" - Nicolas Pitre <nico@fluxnic.net> - Catalin Marinas <catalin.marinas@arm.com> - linux-kernel@vger.kernel.org - linux-arm-msm@vger.kernel.org - " linux-arm-kernel@lists.infradead.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Wed, Sep 21, 2011 at 12:55:53PM +0100, Russell King - ARM Linux wrote:\n" @@ -55,38 +49,6 @@ "function's state saving code has already executed. It might be simple\n" "to work around this particular case by making the unwinder intelligent\n" "enough to realise that if backtracing from the first instruction of a\n" - "function, none of the function's state save code can have executed yet.\n" - ">From any other location though, it's not so simple. It may also do the\n" - "wrong thing for functions where the entry point is not at the start of\n" - "the function body (or where there are loops or multiple entry points)\n" - "-- I expect such instances to be pretty rare though, and this should\n" - "never happen for C.\n" - "\n" - "Tricks like this are no good for reconstructing what happened on the\n" - "path up to an unexpected event like an exception, though. This is\n" - "possible only when certain assumptions are made and the faulting \n" - "function has a sufficiently simple structure. This can work most of\n" - "the time, but it's hard to make it watertight -- this is one reason why\n" - "backtracing in gdb is still far from foolproof.\n" - "\n" - "Alternatively, we would need to use some other frame description format\n" - "such as DWARF, which would involve building everything with debug, and\n" - "keeping the .debug_frame content (possibly with some filtering/post-\n" - "processing). Unwind annotations in .S files would presumably need to be\n" - "rewritten to use the .cfi_ dierctives instead of the ARM-specific\n" - "directives in order for this to work everywhere. Apparently there were\n" - "some patches around for using DWARF for backtracing in the kernel some\n" - "years ago, but they didn't get merged.\n" - "\n" - "\n" - "\n" - "...all of which means that making unwinding work _perfectly_ probably\n" - "involves significant pain, at least for Thumb-2.\n" - "\n" - "I guess the question would be: how many failed backtraces are we getting\n" - "right now? Is the current unwinder behaviour \"good enough\"?\n" - "\n" - "Cheers\n" - ---Dave + function, none of the function's state save code can have executed yet. -ebf05e3b730dad2925c236f19ea2aa49a7359a4d6fd31f232b73789db17f39cb +907f787535d485dae352050c3af5b50666220bcfab7dd284e8ab63096b769408
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.