From patchwork Mon Jan 6 14:36:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Machado X-Patchwork-Id: 37212 Received: (qmail 76679 invoked by alias); 6 Jan 2020 14:36:33 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 76670 invoked by uid 89); 6 Jan 2020 14:36:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=3548, mine, detach, H*r:ip*01.06.06.36 X-HELO: mail-qk1-f179.google.com Received: from mail-qk1-f179.google.com (HELO mail-qk1-f179.google.com) (209.85.222.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 06 Jan 2020 14:36:31 +0000 Received: by mail-qk1-f179.google.com with SMTP id x129so39552406qke.8 for ; Mon, 06 Jan 2020 06:36:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id; bh=BT2X3rR9Qj+mANhIHqdjyN8LWwcyQeNOiJsKTiF7Bxs=; b=EFls5PFXChb0N86PrTKmAf8R7LngVHYPLCngk0RscnYc0jhlM+M2n9UffNG0wdWXyy 2yuGJgpvN5H2Frjtq14yQZTKfl/YkMEfIGhmrau8Ewd3IF7Ihqq6ZC0AGxOnCw8AUqwJ 5zP26r4OgJFVz1tdn6aX/Uqx/Lkd5VIEcstBGdhs18KAke9CGFvqMgO2YMqMpTEIs49d w18qbx2ZjYqHBQmhD9vFbLftBwiSq6d9Gr0yfhRzKOEAGszEHm6GvTb+XfY/+yRQeYI3 xGuJRg2pOTbcf7f6DFfd4qLCFt1f593ADLh2RAkr8ccro+ffNYqU4MHXFg7UZgNmNvu2 QKIw== Return-Path: Received: from localhost.localdomain ([191.249.237.235]) by smtp.gmail.com with ESMTPSA id f26sm23270125qtv.77.2020.01.06.06.36.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jan 2020 06:36:27 -0800 (PST) From: Luis Machado To: gdb-patches@sourceware.org Subject: [PATCH] Fix/Update misc comments Date: Mon, 6 Jan 2020 11:36:20 -0300 Message-Id: <20200106143620.2881-1-luis.machado@linaro.org> X-IsSubscribed: yes While doing some investigation of mine, i noticed a few typos, inaccuracies and missing information. I went ahead and updated/improved those. How does it look? Regards, Luis gdb/ChangeLog: 2020-01-06 Luis Machado * inf-ptrace.c (inf_ptrace_target::resume): Update comments * infrun.c (resume_1): Likewise. (handle_inferior_event): Likewise. * linux-nat.c (linux_nat_target::resume): Likewise. (save_stop_reason): Likewise. (linux_nat_filter_event): Likewise. * linux-nat.h (struct lwp_info) , : Likewise. --- gdb/inf-ptrace.c | 4 ++-- gdb/infrun.c | 11 ++++++----- gdb/linux-nat.c | 16 +++++++++++----- gdb/linux-nat.h | 4 ++-- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c index fd18146efe..e424b9668b 100644 --- a/gdb/inf-ptrace.c +++ b/gdb/inf-ptrace.c @@ -354,8 +354,8 @@ inf_ptrace_target::resume (ptid_t ptid, int step, enum gdb_signal signal) if (step) { /* If this system does not support PT_STEP, a higher level - function will have called single_step() to transmute the step - request into a continue request (by setting breakpoints on + function will have called the appropriate functions to transmute the + step request into a continue request (by setting breakpoints on all possible successor instructions), so we don't have to worry about that here. */ request = PT_STEP; diff --git a/gdb/infrun.c b/gdb/infrun.c index 7ddd21dd09..14c1e76ac1 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2388,8 +2388,8 @@ resume_1 (enum gdb_signal sig) if (tp->control.trap_expected || bpstat_should_step ()) tp->control.may_range_step = 0; - /* If enabled, step over breakpoints by executing a copy of the - instruction at a different address. + /* If displaced stepping is enabled, step over breakpoints by executing a + copy of the instruction at a different address. We can't use displaced stepping when we have a signal to deliver; the comments for displaced_step_prepare explain why. The @@ -2477,7 +2477,7 @@ resume_1 (enum gdb_signal sig) && step_over_info_valid_p ()) { /* If we have nested signals or a pending signal is delivered - immediately after a handler returns, might might already have + immediately after a handler returns, might already have a step-resume breakpoint set on the earlier handler. We cannot set another step-resume breakpoint; just continue on until the original breakpoint is hit. */ @@ -4928,8 +4928,9 @@ Cannot fill $_exitsignal with the correct signal number.\n")); stop_waiting (ecs); return; - /* The following are the only cases in which we keep going; - the above cases end in a continue or goto. */ + /* The following and TARGET_WAITKIND_THREAD_CREATED are the only + cases in which we keep going. The other cases end in a continue or + goto. */ case TARGET_WAITKIND_FORKED: case TARGET_WAITKIND_VFORKED: /* Check whether the inferior is displaced stepping. */ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 465b2acd94..53256d4edb 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1696,7 +1696,8 @@ linux_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo) resume_many = (minus_one_ptid == ptid || ptid.is_pid ()); - /* Mark the lwps we're resuming as resumed. */ + /* Mark the lwps we're resuming as resumed and update their + last_resume_kind to resume_continue. */ iterate_over_lwps (ptid, resume_set_callback); /* See if it's the current inferior that should be handled @@ -2721,7 +2722,7 @@ save_stop_reason (struct lwp_info *lp) { /* If we determine the LWP stopped for a SW breakpoint, trust it. Particularly don't check watchpoint - registers, because at least on s390, we'd find + registers, because, at least on s390, we'd find stopped-by-watchpoint as long as there's a watchpoint set. */ lp->stop_reason = TARGET_STOPPED_BY_SW_BREAKPOINT; @@ -2925,7 +2926,7 @@ resumed_callback (struct lwp_info *lp) } /* Check if we should go on and pass this event to common code. - Return the affected lwp if we are, or NULL otherwise. */ + Return the affected lwp if we should, or NULL otherwise. */ static struct lwp_info * linux_nat_filter_event (int lwpid, int status) @@ -2976,7 +2977,12 @@ linux_nat_filter_event (int lwpid, int status) /* Make sure we don't report an event for the exit of an LWP not in our list, i.e. not part of the current process. This can happen if we detach from a program we originally forked and then it - exits. */ + exits. + + Note the forked children exiting may generate a SIGCHLD to the parent + process. We are still interested in that signal since the parent may + have handlers for it, so we don't ignore it. */ + if (!WIFSTOPPED (status) && !lp) return NULL; @@ -3118,7 +3124,7 @@ linux_nat_filter_event (int lwpid, int status) /* Don't report signals that GDB isn't interested in, such as signals that are neither printed nor stopped upon. Stopping all - threads can be a bit time-consuming so if we want decent + threads can be a bit time-consuming, so if we want decent performance with heavily multi-threaded programs, especially when they're using a high frequency timer, we'd better avoid it if we can. */ diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 0c1695ad10..2f0eeaf362 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -228,7 +228,7 @@ struct lwp_info /* When 'stopped' is set, this is where the lwp last stopped, with decr_pc_after_break already accounted for. If the LWP is - running, and stepping, this is the address at which the lwp was + running and stepping, this is the address at which the lwp was resumed (that is, it's the previous stop PC). If the LWP is running and not stepping, this is 0. */ CORE_ADDR stop_pc; @@ -237,7 +237,7 @@ struct lwp_info int step; /* The reason the LWP last stopped, if we need to track it - (breakpoint, watchpoint, etc.) */ + (breakpoint, watchpoint, etc). */ enum target_stop_reason stop_reason; /* On architectures where it is possible to know the data address of