From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2513 invoked by alias); 27 Feb 2009 21:49:02 -0000 Received: (qmail 2501 invoked by uid 22791); 27 Feb 2009 21:49:00 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 27 Feb 2009 21:48:55 +0000 Received: from wpaz29.hot.corp.google.com (wpaz29.hot.corp.google.com [172.24.198.93]) by smtp-out.google.com with ESMTP id n1RLmpUg011622 for ; Fri, 27 Feb 2009 21:48:51 GMT Received: from rv-out-0506.google.com (rvbl9.prod.google.com [10.140.88.9]) by wpaz29.hot.corp.google.com with ESMTP id n1RLmnh1004481 for ; Fri, 27 Feb 2009 13:48:49 -0800 Received: by rv-out-0506.google.com with SMTP id l9so1241515rvb.33 for ; Fri, 27 Feb 2009 13:48:49 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.204.7 with SMTP id b7mr1400251rvg.119.1235771328988; Fri, 27 Feb 2009 13:48:48 -0800 (PST) In-Reply-To: References: <20090226184107.B00611C78A7@localhost> <200902271941.02441.pedro@codesourcery.com> Date: Fri, 27 Feb 2009 22:11:00 -0000 Message-ID: Subject: Re: [RFA] Include thread ID in target_wait debugging output. From: Doug Evans To: Pedro Alves Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd229d216874f0463ed6f82 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-02/txt/msg00501.txt.bz2 --000e0cd229d216874f0463ed6f82 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 4765 On Fri, Feb 27, 2009 at 11:56 AM, Doug Evans wrote: > On Fri, Feb 27, 2009 at 11:41 AM, Pedro Alves wrote: >> Hi Doug, >> >> On Thursday 26 February 2009 18:41:07, Doug Evans wrote: >>> Hi. >>> >>> Printing the result of target_wait when "set debug infrun 1" is great, >>> but I've found I've needed the thread ID. >>> >>> The output line was getting a bit long, so I split it up. >>> There are other ways to split it up, but this works for me. >>> >> >> The downside of that, is that "set debug timespamp" will print >> a timestamp for each piece of the log, and any signal debug >> output in async mode will mingle up. Maybe do the printing to >> a mem_fileopen buffer, and then print that to stderr in one go? > > Ok, I'll print to mem_fileopen first, and then print in one go. > >> An issue I though would be desirable to avoid here, is calling >> target_pid_to_str, which isn't garanteed to not have side >> effects. > > That's unfortunate. Is that documented somewhere? > >> Introducing side effects when you enable debug >> output is undesirable. > > Yep. > >> Maybe print the ptid in raw form, say, >> like: (pid, lwp, tid)? OTOH, infrun debugging output has been >> doing that for years, so it's probably fine... > > Ya, there's LOTS of calls to target_pid_to_str for debugging output. > >> >>> Ok to check in? >>> >>> 2009-02-26 Doug Evans >>> >>> Include thread ID in target_wait debugging output. >>> * infrun.c (print_target_wait_results): New function. >>> (wait_for_inferior,fetch_inferior_event): Call it. >>> >>> Index: infrun.c >>> =================================================================== >>> RCS file: /cvs/src/src/gdb/infrun.c,v >>> retrieving revision 1.360 >>> diff -u -p -r1.360 infrun.c >>> --- infrun.c 25 Feb 2009 02:14:22 -0000 1.360 >>> +++ infrun.c 26 Feb 2009 18:34:57 -0000 >>> @@ -1737,6 +1737,30 @@ delete_step_thread_step_resume_breakpoin >>> delete_step_thread_step_resume_breakpoint (); >>> } >>> >>> +/* Pretty print the results of target_wait, for debugging purposes. */ >>> + >>> +static void >>> +print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid, >>> + const struct target_waitstatus *ws) >>> +{ >>> + char *status_string = target_waitstatus_to_string (ws); >>> + >>> + fprintf_unfiltered (gdb_stdlog, >>> + "infrun: target_wait (%d", PIDGET (waiton_ptid)); >>> + if (PIDGET (waiton_ptid) != -1) >>> + fprintf_unfiltered (gdb_stdlog, >>> + " [%s]", target_pid_to_str (waiton_ptid)); >>> + fprintf_unfiltered (gdb_stdlog, ", status) =\n"); >>> + fprintf_unfiltered (gdb_stdlog, >>> + "infrun: %d [%s],\n", >>> + PIDGET (result_ptid), target_pid_to_str (result_ptid)); >>> + fprintf_unfiltered (gdb_stdlog, >>> + "infrun: %s\n", >>> + status_string); >>> + >>> + xfree (status_string); >>> +} >>> + >>> /* Wait for control to return from inferior to debugger. >>> >>> If TREAT_EXEC_AS_SIGTRAP is non-zero, then handle EXEC signals >>> @@ -1790,14 +1814,7 @@ wait_for_inferior (int treat_exec_as_sig >>> ecs->ptid = target_wait (waiton_ptid, &ecs->ws); >>> >>> if (debug_infrun) >>> - { >>> - char *status_string = target_waitstatus_to_string (&ecs->ws); >>> - fprintf_unfiltered (gdb_stdlog, >>> - "infrun: target_wait (%d, status) = %d, %s\n", >>> - PIDGET (waiton_ptid), PIDGET (ecs->ptid), >>> - status_string); >>> - xfree (status_string); >>> - } >>> + print_target_wait_results (waiton_ptid, ecs->ptid, &ecs->ws); >>> >>> if (treat_exec_as_sigtrap && ecs->ws.kind == TARGET_WAITKIND_EXECD) >>> { >>> @@ -1875,14 +1892,7 @@ fetch_inferior_event (void *client_data) >>> ecs->ptid = target_wait (waiton_ptid, &ecs->ws); >>> >>> if (debug_infrun) >>> - { >>> - char *status_string = target_waitstatus_to_string (&ecs->ws); >>> - fprintf_unfiltered (gdb_stdlog, >>> - "infrun: target_wait (%d, status) = %d, %s\n", >>> - PIDGET (waiton_ptid), PIDGET (ecs->ptid), >>> - status_string); >>> - xfree (status_string); >>> - } >>> + print_target_wait_results (waiton_ptid, ecs->ptid, &ecs->ws); >>> >>> if (non_stop >>> && ecs->ws.kind != TARGET_WAITKIND_IGNORE >>> >> >> How about this? 2009-02-27 Doug Evans Include thread ID in target_wait debugging output. * infrun.c (print_target_wait_results): New function. (wait_for_inferior,fetch_inferior_event): Call it. --000e0cd229d216874f0463ed6f82 Content-Type: text/plain; charset=US-ASCII; name="gdb-090227-debug-target-wait-2.patch.txt" Content-Disposition: attachment; filename="gdb-090227-debug-target-wait-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frpeboti0 Content-length: 4376 MjAwOS0wMi0yNyAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCUlu Y2x1ZGUgdGhyZWFkIElEIGluIHRhcmdldF93YWl0IGRlYnVnZ2luZyBvdXRw dXQuCgkqIGluZnJ1bi5jIChwcmludF90YXJnZXRfd2FpdF9yZXN1bHRzKTog TmV3IGZ1bmN0aW9uLgoJKHdhaXRfZm9yX2luZmVyaW9yLGZldGNoX2luZmVy aW9yX2V2ZW50KTogQ2FsbCBpdC4KCkluZGV4OiBpbmZydW4uYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2lu ZnJ1bi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2MApkaWZmIC11IC1w IC11IC1wIC1yMS4zNjAgaW5mcnVuLmMKLS0tIGluZnJ1bi5jCTI1IEZlYiAy MDA5IDAyOjE0OjIyIC0wMDAwCTEuMzYwCisrKyBpbmZydW4uYwkyNyBGZWIg MjAwOSAyMTo0Mjo0OCAtMDAwMApAQCAtMTczNyw2ICsxNzM3LDQ2IEBAIGRl bGV0ZV9zdGVwX3RocmVhZF9zdGVwX3Jlc3VtZV9icmVha3BvaW4KICAgZGVs ZXRlX3N0ZXBfdGhyZWFkX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgKCk7CiB9 CiAKKy8qIFByZXR0eSBwcmludCB0aGUgcmVzdWx0cyBvZiB0YXJnZXRfd2Fp dCwgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gICovCisKK3N0YXRpYyB2b2lk CitwcmludF90YXJnZXRfd2FpdF9yZXN1bHRzIChwdGlkX3Qgd2FpdG9uX3B0 aWQsIHB0aWRfdCByZXN1bHRfcHRpZCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB0 YXJnZXRfd2FpdHN0YXR1cyAqd3MpCit7CisgIGNoYXIgKnN0YXR1c19zdHJp bmcgPSB0YXJnZXRfd2FpdHN0YXR1c190b19zdHJpbmcgKHdzKTsKKyAgc3Ry dWN0IHVpX2ZpbGUgKnRtcF9zdHJlYW0gPSBtZW1fZmlsZW9wZW4gKCk7Cisg IGNoYXIgKnRleHQ7CisgIGxvbmcgbGVuOworCisgIC8qIFRoZSB0ZXh0IGlz IHNwbGl0IG92ZXIgc2V2ZXJhbCBsaW5lcyBiZWNhdXNlIGl0IHdhcyBnZXR0 aW5nIHRvbyBsb25nLgorICAgICBDYWxsIGZwcmludGZfdW5maWx0ZXJlZCAo Z2RiX3N0ZGxvZykgb25jZSBzbyB0aGF0IHRoZSB0ZXh0IGlzIHN0aWxsCisg ICAgIG91dHB1dCBhcyBhIHVuaXQ7IHdlIHdhbnQgb25seSBvbmUgdGltZXN0 YW1wIHByaW50ZWQgaWYgZGVidWdfdGltZXN0YW1wCisgICAgIGlzIHNldC4g ICovCisKKyAgZnByaW50Zl91bmZpbHRlcmVkICh0bXBfc3RyZWFtLAorCQkg ICAgICAiaW5mcnVuOiB0YXJnZXRfd2FpdCAoJWQiLCBQSURHRVQgKHdhaXRv bl9wdGlkKSk7CisgIGlmIChQSURHRVQgKHdhaXRvbl9wdGlkKSAhPSAtMSkK KyAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKHRtcF9zdHJlYW0sCisJCQkiIFsl c10iLCB0YXJnZXRfcGlkX3RvX3N0ciAod2FpdG9uX3B0aWQpKTsKKyAgZnBy aW50Zl91bmZpbHRlcmVkICh0bXBfc3RyZWFtLCAiLCBzdGF0dXMpID1cbiIp OworICBmcHJpbnRmX3VuZmlsdGVyZWQgKHRtcF9zdHJlYW0sCisJCSAgICAg ICJpbmZydW46ICAgJWQgWyVzXSxcbiIsCisJCSAgICAgIFBJREdFVCAocmVz dWx0X3B0aWQpLCB0YXJnZXRfcGlkX3RvX3N0ciAocmVzdWx0X3B0aWQpKTsK KyAgZnByaW50Zl91bmZpbHRlcmVkICh0bXBfc3RyZWFtLAorCQkgICAgICAi aW5mcnVuOiAgICVzXG4iLAorCQkgICAgICBzdGF0dXNfc3RyaW5nKTsKKwor ICB0ZXh0ID0gdWlfZmlsZV94c3RyZHVwICh0bXBfc3RyZWFtLCAmbGVuKTsK KworICAvKiBUaGlzIHVzZXMgJXMgaW4gcGFydCB0byBoYW5kbGUgJSdzIGlu IHRoZSB0ZXh0LCBidXQgYWxzbyB0byBhdm9pZAorICAgICBhIGdjYyBlcnJv cjogdGhlIGZvcm1hdCBhdHRyaWJ1dGUgcmVxdWlyZXMgYSBzdHJpbmcgbGl0 ZXJhbC4gICovCisgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywg IiVzIiwgdGV4dCk7CisKKyAgeGZyZWUgKHN0YXR1c19zdHJpbmcpOworICB4 ZnJlZSAodGV4dCk7CisgIHVpX2ZpbGVfZGVsZXRlICh0bXBfc3RyZWFtKTsK K30KKwogLyogV2FpdCBmb3IgY29udHJvbCB0byByZXR1cm4gZnJvbSBpbmZl cmlvciB0byBkZWJ1Z2dlci4KIAogICAgSWYgVFJFQVRfRVhFQ19BU19TSUdU UkFQIGlzIG5vbi16ZXJvLCB0aGVuIGhhbmRsZSBFWEVDIHNpZ25hbHMKQEAg LTE3OTAsMTQgKzE4MzAsNyBAQCB3YWl0X2Zvcl9pbmZlcmlvciAoaW50IHRy ZWF0X2V4ZWNfYXNfc2lnCiAJZWNzLT5wdGlkID0gdGFyZ2V0X3dhaXQgKHdh aXRvbl9wdGlkLCAmZWNzLT53cyk7CiAKICAgICAgIGlmIChkZWJ1Z19pbmZy dW4pCi0JewotCSAgY2hhciAqc3RhdHVzX3N0cmluZyA9IHRhcmdldF93YWl0 c3RhdHVzX3RvX3N0cmluZyAoJmVjcy0+d3MpOwotCSAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAotCQkJICAgICAgImluZnJ1bjogdGFyZ2V0 X3dhaXQgKCVkLCBzdGF0dXMpID0gJWQsICVzXG4iLAotCQkJICAgICAgUElE R0VUICh3YWl0b25fcHRpZCksIFBJREdFVCAoZWNzLT5wdGlkKSwKLQkJCSAg ICAgIHN0YXR1c19zdHJpbmcpOwotCSAgeGZyZWUgKHN0YXR1c19zdHJpbmcp OwotCX0KKwlwcmludF90YXJnZXRfd2FpdF9yZXN1bHRzICh3YWl0b25fcHRp ZCwgZWNzLT5wdGlkLCAmZWNzLT53cyk7CiAKICAgICAgIGlmICh0cmVhdF9l eGVjX2FzX3NpZ3RyYXAgJiYgZWNzLT53cy5raW5kID09IFRBUkdFVF9XQUlU S0lORF9FWEVDRCkKICAgICAgICAgewpAQCAtMTg3NSwxNCArMTkwOCw3IEBA IGZldGNoX2luZmVyaW9yX2V2ZW50ICh2b2lkICpjbGllbnRfZGF0YSkKICAg ICBlY3MtPnB0aWQgPSB0YXJnZXRfd2FpdCAod2FpdG9uX3B0aWQsICZlY3Mt PndzKTsKIAogICBpZiAoZGVidWdfaW5mcnVuKQotICAgIHsKLSAgICAgIGNo YXIgKnN0YXR1c19zdHJpbmcgPSB0YXJnZXRfd2FpdHN0YXR1c190b19zdHJp bmcgKCZlY3MtPndzKTsKLSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywKLQkJCSAgImluZnJ1bjogdGFyZ2V0X3dhaXQgKCVkLCBzdGF0 dXMpID0gJWQsICVzXG4iLAotCQkJICBQSURHRVQgKHdhaXRvbl9wdGlkKSwg UElER0VUIChlY3MtPnB0aWQpLAotCQkJICBzdGF0dXNfc3RyaW5nKTsKLSAg ICAgIHhmcmVlIChzdGF0dXNfc3RyaW5nKTsKLSAgICB9CisgICAgcHJpbnRf dGFyZ2V0X3dhaXRfcmVzdWx0cyAod2FpdG9uX3B0aWQsIGVjcy0+cHRpZCwg JmVjcy0+d3MpOwogCiAgIGlmIChub25fc3RvcAogICAgICAgJiYgZWNzLT53 cy5raW5kICE9IFRBUkdFVF9XQUlUS0lORF9JR05PUkUK --000e0cd229d216874f0463ed6f82--