From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35623 invoked by alias); 23 Jan 2017 22:43:42 -0000 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 Received: (qmail 35222 invoked by uid 89); 23 Jan 2017 22:43:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 23 Jan 2017 22:43:35 +0000 Received: from ESESSHC018.ericsson.se (Unknown_Domain [153.88.253.124]) by (Symantec Mail Security) with SMTP id F8.65.32317.F0786885; Mon, 23 Jan 2017 23:43:28 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.72) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 23 Jan 2017 23:41:26 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxcz23q12-y4.ca.am.ericsson.se (192.75.88.130) by DBXPR07MB399.eurprd07.prod.outlook.com (10.141.14.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.874.6; Mon, 23 Jan 2017 22:40:31 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/5] Add Python Inferior object debug traces Date: Mon, 23 Jan 2017 22:43:00 -0000 Message-ID: <20170123224004.8893-3-simon.marchi@ericsson.com> In-Reply-To: <20170123224004.8893-1-simon.marchi@ericsson.com> References: <20170123224004.8893-1-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: CY4PR13CA0008.namprd13.prod.outlook.com (10.168.161.146) To DBXPR07MB399.eurprd07.prod.outlook.com (10.141.14.149) X-MS-Office365-Filtering-Correlation-Id: a59b3a6d-25ac-4185-8348-08d443e0d6a7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DBXPR07MB399; X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;3:EIDnmN2HjD1j//2DlSvuKJ5TH79OXiv3OcdswpeqnB74r0ZD1UqV+i/fr8E6kLX6a60FROBsb2f7qP6ocGRZvsVrJa1TmKPX8Rx5k5m1N5qFcVsNpNVpze6VxZX0N2n+WVcuj7pqYNtzpvbUkvbq4ygH3DyDa8le8ILfnWIHOZ/Go6FMOWNcCknLVPChFBsCwTC4BW6CCeurtVAKGdKHcam68/spZUkgYZbbJxQJGrOJMLKuToQYdON8orK4KBzmDOlA3JcqzwIHLXT+yuhKjg== X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;25:6KqfWRu5mKcXS9a+7WjXlBLpwR+Qm5BWtROIJC9IDLZXXhaTUWHCRIdjx1wq4hg1R77sLrjKNg+Qs73cbAhY3FHVWq5tenrV3k3ZyzDM2ZDnQj27tpNn/5ZunwBfQyhCBQWbARW33bJcPM54Az2/jkvl56zc+0VM8JfXe8NkYfnLae/+xoWoUeZs1TGeQg+7s24CvaTAebDhGdsVBezUlzDr+VGuaKhCTxV4n7MoRjBwc0ce/LcVJKDAwkD4Ufoc2yv13oyCasuMv7uFiNZh9Yd6/AvB7rvDNdikDxq5RAcKO5vQpPDTWWNsMYpwDlQs+9kC3uBYZXG8Buk+xadBH73defW3ZFnZVHKkcNO4V7FP46H/W/Qi4FzWzzC5QIpzLJqJHORjU7I3Xy8e2GuBxlraajqLdptT9K9USG+wKvx6rGnhC6ALWSB2/dgGPbzzyEs/mOv94FW0xhYyGHz3Ks4F1m7nuQuQrosXEGULoMifIkepqyCCkCXbsxVRIVvJRcaCtVFZG6ZzvarwNwMfiUDe+OwNcKSIGFSOPsy3Unn2wQ5FHoa6gqmR/7hou8J2tU6EUZ4UV0irFrUqwViTbGzZAs1VxkCuhEAKfrqBVoZlhtjtVveXsct4TzyZfUwgqt6gz9eZaifIUPlxx4SjHQC/owUJZwF5sp7Eqsw++E3aNcDqyx/pKJj4uRfLW4HQIjFZ/Npjc1H9+O+/m3Ope41nhpPGPlecLk2OAALIC7hRqe333AmIyxr38fSqkNdm X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;31:9LX0eFs01ZnaGSJ/s/2Y3lNy0CBDHS3oaG9WqwzX2gVemxQkk1V06+rXdnQNQkkAy07hpnuHoOZ1cDo0kng6KDLyO8m2sMuvEVIlKrjeWUBxfd0VUziGTSB7fOVyHlOtVBdw81CEqF0LAxuKhv1jobLMjqoWFmWP9FjKUBNWkAo3YNk9d0HZhChCpWPioQf/CJEWfJQBi1//FHQc1saG+NpZ37DRhs3eu1PKULYuwgVl3VNVHemYR7bDZAyM9liE;20:pM/MDNgwbu7vwBHU46QVs6hnweCCOf4hUNqzsgC1ZE/+9/aOVcUHid8uzAggviETRlHyW+eFnXmdOOzw0d29DeCRVIDGlDZL1YD6FoTpv510y2h23lK0j2VpLgtts3zxkCwXVxK5Kvxlf8jDY6V1vyL2eMlqfPMPGBhF7/8qJlHUnnuGOazztFWPGNNPtUHVwpZBVy/62iKkujNvU/i/5bt+PXKCE4FvQFK2aV6cfrnwpj/Bpxy33XKupTyeadfwPPt/bYZU4cpLX3kJJodjkMQGhvZvLh1Z01lnlHPTXscUgGsR443OITf6wAi+386pm9o8sODA3d8/7MYOzr+X3U+cPUIw0RDDY5kht2LN72c66qHLaMQgA757ydEPJr9Zmgh8tEe73HACMmKaSnzG7DxAvYZZkNsXnmh9L4eTmHUdxK3Vt6SxScjgFV46+JPvQsbW+3Wk9Ewmd9ptT63C/2Yh/zQ72EkwRUwgp2chvpj92zdq8TejXSvc6DBnK24z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123558021)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:DBXPR07MB399;BCL:0;PCL:0;RULEID:;SRVR:DBXPR07MB399; X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;4:+NjEjJRo4qKuCX+ScsEEDD4rrfKknqOtoAi96waGiElOF6BpNJ622btU3xrrkmXoWKDfJouf+njEedbqwBJk2YbMUu61CFpEiY4kuOo0USulfIb2eW2WLBlvn+clBnLemEYLcuzzUDgnVctS4t4mfe3I7unG+9BZrGdcyV3PutobHkKAnqRrqIM509a5akEam4b/4rv7UdXeIUeS3hU1HHp90H59E4/XTYThwaoa8bXaGYjFmNEtwj88IQvDYQZstWjnghom33F83aAykByo7o8nBDWQkg+0rsAGHxofMT8mkkPeX9IyAXW1s1nrNLlSk41+bUEGha4mfWdiWqu8G+V8jXs0AJ3ZU5aawmsGrIZbcYvM7BHfTptD3dVxTm8RPLiumkUmBMjO51RetiaJ0kwWDSJ7tLJpa+GSewbOtsIc3smJMMEWlv613SI9DKMcMHWUAj5ntjhbCFAxsndhSK/oRq/pfuLslElA+eeX+5cr43py3luG2vDBgpv6wWn5R1kW39NMJJ73tKxKcFTKrkte8TsgpS2aF+fqJV7re0fe1ln2CtMfVww6WtUKCc8SGU9EoNVlajPqyWtIHolM9Z7BBhZowL/nD5g/I+LXyIQ= X-Forefront-PRVS: 0196A226D1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6009001)(7916002)(39450400003)(199003)(54534003)(189002)(6916009)(8676002)(110136003)(48376002)(4326007)(5660300001)(2906002)(105586002)(81156014)(81166006)(106356001)(2351001)(107886002)(189998001)(7736002)(2950100002)(6666003)(50466002)(50226002)(68736007)(1076002)(5003940100001)(92566002)(305945005)(3846002)(6116002)(97736004)(450100001)(6512007)(86362001)(575784001)(25786008)(4001430100002)(6486002)(6506006)(38730400001)(50986999)(33646002)(76176999)(42186005)(66066001)(47776003)(36756003)(53936002)(101416001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:DBXPR07MB399;H:elxcz23q12-y4.ca.am.ericsson.se;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DBXPR07MB399;23:QG6b96aaNKC++HOUYcjl3o26DYK85KU5wX2hEdP7nC?= =?us-ascii?Q?5UIOnVcY2jqN9bW4SCPCaQUvzqloT4Z0dpCzsxvCOyvvzvHkV6lwTDwSMOWt?= =?us-ascii?Q?kWxLAfMFgUCXDXw36BDSVqTbb5Zge/vHA9d1XTLNofBzJVq6k3hbKINeUfHY?= =?us-ascii?Q?I673FQE/Lobb3H9Fc5lXWCuNNsdSgzdBBwzdEdeb/LhQPIzMeDTfrcJgpieh?= =?us-ascii?Q?1+wWIuIhPbjmg+ucN5/+3lwkCSyzw4qHuLi9YP2M0hmaYvQvqHVtHp2EwCQV?= =?us-ascii?Q?7VJ4XBKomAl9czW5lgDXHUwCPgI/FOEKEUbx1Jau8YIlOg/cWwGxr97b4Yp0?= =?us-ascii?Q?H+mvkwriIPOIb/crs8k5/oYlIvnbEroG9TT0OARUwPCGhYG74l+90IavYuAq?= =?us-ascii?Q?zXTX21+hPJ/NexTularUEgsDl8PHACAytVqp1Nvb5LTeAWhc/nCOCchPp3lM?= =?us-ascii?Q?Ge4908HmsakB6aU7iUo+++K9AM+T1Pt/F8763q/9mOkTXbtbmSFWGKxZdFp5?= =?us-ascii?Q?uQiA2Dnifbqc/vTke9jiZCZCaUfYBcelz9OBjOZczMU+eubJ1qNBvfop/wUR?= =?us-ascii?Q?wE05IECxn9ZjQfUgG+RpJPnUdFe4hlbqIYmD8SjXorrjzY8ouIjwNiOTyFzv?= =?us-ascii?Q?xPc8c4EGBU6y8vFflYKWDu/Cw7CKjCehgVZI/pS61Y3ghUXvc/jJq3Bk16sv?= =?us-ascii?Q?eoQjVzqgWybShRvz8CfKcs6KQ8pRkvag57MnyBgcqP+gLiebIrfPq4w6E+ov?= =?us-ascii?Q?CiDlOw/9v/JYCmueJxQic1bKj47g9mLkXvkXypHfSnU6dlyVyKjfPXMR55BN?= =?us-ascii?Q?roJKIgRpZNpy/PhR3B1bKMdpEr5Ydmz7Fn/NWPJ3b0gon8cqcq6nrEFrWcGr?= =?us-ascii?Q?Rqz1XX44FVh1jSpAyJS7qlOxGj+EPVzs9MbgfN0GAybSWOEvZXNm4CUnCP6X?= =?us-ascii?Q?wKqzLs63ilv7vmZLIDSFXEvyY5/HfK9jsQxnRx3Iw7AYJrmTFJ9V4C+twYUe?= =?us-ascii?Q?DfAuCfSbNFjaJJueh/DHDm7MSsVMBDVvbVSSGyqs0vAtDfvH24u2Qhf5vkDO?= =?us-ascii?Q?qrLcHqSpQWT8U+8jmob2plXfvhF5xAJYBxpudS8Ix/Of87eEc82y+bCiuHPJ?= =?us-ascii?Q?81dZEP19xFYTRtjPhsY3fohFGeFVpFNbr0EuzKM29ZLkapEkVms9mHgai5SJ?= =?us-ascii?Q?Ks9kHtfD/RpEqkfVoHENx6bgQMzAHP0RZE+bSKkOeE18+SXOb+n0mRox5Vhw?= =?us-ascii?Q?Mx7zaD3Vg0K/zQVt11RO8kypLHrjj+E+yFQk+c4hXQ4dMguCZz8nrnwpvt8G?= =?us-ascii?Q?/cu0fP65tAljmpFr+mAT+22uKDbnMT/41+YFuKWtZPzjsj+75e8yaysbzfbo?= =?us-ascii?Q?FVDg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;6:9msnZj0ZrXm/48h/u7nqlOOfuNCiyxl9ptVjs9r6qGkRcE+nVoLd1lESNE7gxAFSzdyu8ErstImEurQPr4UlAN/e2t06VagLHboc87EcF32wUYog3np7n7rWpkcrtYGGSYX3vHgd6wrgaMhBXq9RDbj4MG6mHbTJRvmI8rPn1DigkHMxucbWUz8cFcmGQsZ9JIPrvoLf7ofxTmrwDKmq9iJ6XWSvUFIY/dPzb9x4E4VPQav+pqD4KQU+lFAc3D4arDWJt/6A4R4bR3Sq6wpvNkdxVVftOSEFfdWhAw6ivfVPHSKA5qmBXK4ay6Kmk5yL4ryt9DF6saTIr1MyX4el7lkDBW7A/F/BEiEsBcHlXXiBbSZbBYfsOnyXoJiHV3Q7HbUs1cpC5nBgV9tS1atHdVniKnBMBvoC0H8btzbaaPc=;5:FJUPZNTLQEhcawV54f3m9+FZAo8WmKENvAIdJIOCqUIgQKBjqaohbu5N3OpRM9ITOooxJlDo33py9a9NgYM9eEyIuMH54YIlWbz75RtuS43QEGSJ79pfBQU1Iz8k0g6Ktmrike3YFnWK+iUfNUjr2A==;24:ENTr1fTuZDBeCPdCwfnfSxBhAr4WnsqvQA9bH3ks24uc1FsWVBFI/xYzQTZpY1t5jVafR31l3C7dCeiSbHZdVHglYvEmKNRnx7Dfr4ZNo3o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB399;7:5YrChdJK4hR8K4yI2qTlt1uYppkYdejdc7w2CaeLTErK0NgE3O+FuReI0cuImZWEb4NqTarLc0JtDM1Jmc+EngU4v9gNjvXxS2iPdzxbE1PuIVYVxpCQxnwVp/V7cZFhd0YORwiqwDeGxebp8x/BKxKmA2KEJQktdYqWndjiRyOFQSyGhbCZYcRnpVK9TnsqPPsl8WtupxQ/PuyCPAHTFrM2ZWwJdWgiIyVQ2YLznmpd0B4fhEC21ijm/+1aC1ZdB2U/otST1hX2kFMdl+7yNLVadRyUwfRNC353ELVcqwI9257LexZmbyjgvh66OWxm2p4sTfzam8vUcvW8JhdKn4qKmQj6pzL/kVq22qs6UP+AnElJLaZ8BHWD9FyY4vh4SVDB5ORErXH39ncT1syojSiHlIR43K5EMXCphzW/PGA0aQPKnfPjVa+p6Two4noqzmDc8qS73pqp9FDHWe3Tow== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2017 22:40:31.2401 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBXPR07MB399 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-01/txt/msg00477.txt.bz2 I added those printfs while trying to debug the refcount issue fixed by a following patch. I thought it could be useful to have debug traces for anything Python-related. I have only added prints to track Inferior the lifetime of Inferior objects because that's all I needed, but we might want to add the same for other types in the future. While debugging, I also made some kind of "maint python refcounts" that would print the refcounts of each known Inferior object. If you think it could be useful I could dig it up. gdb/ChangeLog: * python/python-internal.h (debug_python): New variable declaration. * python/python.c (debug_python): New variable. (_initialize_python): Add "set debug python" command. * python/py-inferior.c (inferior_to_inferior_object): Add debug print. (infpy_dealloc): Likewise. (py_free_inferior): Likewise. --- gdb/python/py-inferior.c | 15 +++++++++++++++ gdb/python/python-internal.h | 4 ++++ gdb/python/python.c | 12 ++++++++++++ 3 files changed, 31 insertions(+) diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index b2aaf25e8a..5c215fef44 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -215,6 +215,10 @@ inferior_to_inferior_object (struct inferior *inferior) inf_obj = (inferior_object *) inferior_data (inferior, infpy_inf_data_key); if (!inf_obj) { + if (debug_python) + printf_filtered ("Creating Python Inferior object inf = %d\n", + inferior->num); + inf_obj = PyObject_New (inferior_object, &inferior_object_type); if (!inf_obj) return NULL; @@ -758,6 +762,14 @@ infpy_dealloc (PyObject *obj) inferior_object *inf_obj = (inferior_object *) obj; struct inferior *inf = inf_obj->inferior; + if (debug_python) + { + if (inf != NULL) + printf_filtered ("infpy_dealloc inf = %d\n", inf->num); + else + printf_filtered ("infpy_dealloc inf = \n"); + } + if (! inf) return; @@ -777,6 +789,9 @@ py_free_inferior (struct inferior *inf, void *datum) gdbpy_enter enter_py (python_gdbarch, python_language); + if (debug_python) + printf_filtered ("py_free_inferior inf = %d\n", inf->num); + inf_obj->inferior = NULL; /* Deallocate threads list. */ diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index e2ebc1b8a2..ac98f12ab3 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -240,6 +240,10 @@ struct inferior; extern int gdb_python_initialized; +/* True if debug output about Python features is enabled. */ + +extern int debug_python; + extern PyObject *gdb_module; extern PyObject *gdb_python_module; extern PyTypeObject value_object_type diff --git a/gdb/python/python.c b/gdb/python/python.c index ab5a6a416d..dc0fa25054 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -106,6 +106,10 @@ const struct extension_language_defn extension_language_python = int gdb_python_initialized; +/* See python-internal.h */ + +int debug_python = 0; + extern PyMethodDef python_GdbMethods[]; #ifdef IS_PY3K @@ -1605,6 +1609,14 @@ message == an error message without a stack will be printed."), &user_set_python_list, &user_show_python_list); + add_setshow_boolean_cmd ("python", class_maintenance, + &debug_python, _("\ +Set Python debug output."), _("\ +Show Python debug output."), _("\ +When on, debugging output for Python-related features is displayed."), + NULL, NULL, + &setdebuglist, &showdebuglist); + #ifdef HAVE_PYTHON #ifdef WITH_PYTHON_PATH /* Work around problem where python gets confused about where it is, -- 2.11.0