winedbg: suppress bogus clone() frames in backtrace
Ralf Habacker
ralf.habacker at freenet.de
Fri Nov 27 02:03:17 CST 2015
Am 26.11.2015 um 09:25 schrieb Daniel Santos:
> Signed-off-by: Daniel Santos <daniel.santos at pobox.com>
> ---
> programs/winedbg/stack.c | 27 ++++++++++++++++++++++-----
> 1 file changed, 22 insertions(+), 5 deletions(-)
>
> diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c
> index f49480a..8ef2dbc 100644
> --- a/programs/winedbg/stack.c
> +++ b/programs/winedbg/stack.c
> @@ -307,6 +307,11 @@ static void stack_print_addr_and_args(int nf)
> im.ModuleName, (DWORD_PTR)(ihsf.InstructionOffset - im.BaseOfImage));
> }
>
> +static int addr_is_nonzero(const ADDRESS64 *addr)
> +{
> + return addr->Offset && (addr->Mode != AddrModeFlat || addr->Segment);
> +}
> +
> /******************************************************************
> * backtrace
> *
> @@ -322,12 +327,24 @@ static void backtrace(void)
> dbg_curr_thread->curr_frame < dbg_curr_thread->num_frames;
> dbg_curr_thread->curr_frame++)
> {
> - dbg_printf("%s%d ",
> - (cf == dbg_curr_thread->curr_frame ? "=>" : " "),
> - dbg_curr_thread->curr_frame);
> - stack_print_addr_and_args(dbg_curr_thread->curr_frame);
> + const unsigned nf = dbg_curr_thread->curr_frame;
> + const ADDRESS64 *addr = &dbg_curr_thread->frames[nf].addr_frame;
> +
> + /* suppress bogus clone() frames from repeating */
Hi,
any idea if the mentioned bug have the same reason
https://bugs.winehq.org/show_bug.cgi?id=39606
Regards
Ralf
More information about the wine-patches
mailing list