From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12999 invoked by alias); 21 Nov 2016 12:32:11 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 12950 invoked by uid 89); 21 Nov 2016 12:32:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=valves, 8:ns, weather, 12.1 X-HELO: mail.marco.de Received: from mail.marco.de (HELO mail.marco.de) (93.104.246.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 Nov 2016 12:31:59 +0000 Received: from mailbox.marco.de (mailbox [10.1.2.4]) by mail.marco.de (Postfix) with ESMTP id 5A3A0762171 for ; Mon, 21 Nov 2016 13:31:56 +0100 (CET) Received: from [10.1.1.1] (hera.dachau.marco.de [10.1.1.1]) (Authenticated sender: leo) by mailbox.marco.de (Postfix) with ESMTPSA for ; Mon, 21 Nov 2016 13:31:56 +0100 (CET) To: gdb@sourceware.org From: Matthias Pfaller Subject: [bug?] [patch] target remote and multiprocess+ Message-ID: <5832E93B.9060507@marco.de> Date: Mon, 21 Nov 2016 12:32:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms050805070708060302060405" X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00033.txt.bz2 This is a cryptographically signed message in MIME format. --------------ms050805070708060302060405 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 8330 Hi, in order to have per thread watch and break points I resorted to report "multiprocess+;" and put each thread into its very own "process". But when I did this, I got the following display: (gdb) info inferiors Num Description Executable * 1 process 536909700 firmware/firmware.elf (gdb) info threads Id Target Id Frame 1 Thread 536949956.536949956 (gdbstub R 00000000 0) (running) 2 Thread 536948708.536948708 (lightshow S 2000fac4 36) (running) 3 Thread 536947332.536947332 (dspleds S 2000faf2 33) (running) 4 Thread 536945956.536945956 (vtask S 2000fb2a 35) (running) 5 Thread 536944580.536944580 (kit S 2000fb92 0) (running) 6 Thread 536943204.536943204 (counter S 2000a382 0) (running) 7 Thread 536941796.536941796 (ssb 3 S 20011348 0) (running) 8 Thread 536940484.536940484 (ssb U S 20010e24 0) (running) 9 Thread 536929924.536929924 (ptpd S 004bf68d 1622) (running) 10 Thread 536928164.536928164 (swarmbee S 2000e57c 6) (running) 11 Thread 536927044.536927044 (telnetd S 2000dae8 0) (running) 12 Thread 536925956.536925956 (tftpds S 2000d2f4 0) (running) 13 Thread 536924964.536924964 (tftpds S 2000d2f0 0) (running) 14 Thread 536924484.536924484 (tftpd S 2000d109 0) (running) 15 Thread 536923812.536923812 (psuctrl S 2000d0cc 96) (running) 16 Thread 536922692.536922692 (pmnet S 20004828 998) (running) 17 Thread 536920868.536920868 (tcpip_thread S 2000c311 65) (running) 18 Thread 536920228.536920228 (valves S 00484dd5 45) (running) 19 Thread 536916932.536916932 (ssb_upd S 00000000 48) (running) 20 Thread 536916196.536916196 (ssb_link S 004981a1 0) (running) 21 Thread 536915748.536915748 (power S 00000000 1) (running) 22 Thread 536915140.536915140 (alive S 00000000 5) (running) 23 Thread 536914596.536914596 (slow S 00000000 1) (running) 24 Thread 536914244.536914244 (wdog S 00000000 22) (running) 25 Thread 536913124.536913124 (dsp R 00000000 0) (running) 26 Thread 536911044.536911044 (f83console S 2000e5c8 0) (running) * 27 Thread 536909700.536909700 (idle R 00000000 0) (running) (gdb) I don't think this is the way this should work. I did a simple patch to remote.c and inferior.c. Now I get (don't mind the different lwp/pid format): (gdb) info inferiors Num Description Executable 1 200134c4 firmware.elf 2 20012fe4 firmware.elf 3 20012a84 firmware.elf 4 20012524 firmware.elf 5 20011fc4 firmware.elf 6 20011a64 firmware.elf 7 200114e4 firmware.elf 8 20010fc4 firmware.elf 9 2000e684 firmware.elf 10 2000dfa4 firmware.elf 11 2000db44 firmware.elf 12 2000d704 firmware.elf 13 2000d324 firmware.elf 14 2000d144 firmware.elf 15 2000cea4 firmware.elf 16 2000ca44 firmware.elf 17 2000c324 firmware.elf 18 2000c0a4 firmware.elf 19 2000b3c4 firmware.elf 20 2000b0e4 firmware.elf 21 2000af24 firmware.elf 22 2000acc4 firmware.elf 23 2000aaa4 firmware.elf 24 2000a944 firmware.elf 25 2000a4e4 firmware.elf 26 20009cc4 firmware.elf * 27 20009784 firmware.elf (gdb) info threads Id Target Id Frame 1.1 200134c4 (gdbstub R 00000000 0) (running) 2.1 20012fe4 (lightshow S 2000fac4 29) (running) 3.1 20012a84 (dspleds S 2000faf2 28) (running) 4.1 20012524 (vtask S 2000fb2a 50) (running) 5.1 20011fc4 (kit S 2000fb92 0) (running) 6.1 20011a64 (counter S 2000a382 0) (running) 7.1 200114e4 (ssb 3 S 20011348 0) (running) 8.1 20010fc4 (ssb U S 20010e24 0) (running) 9.1 2000e684 (ptpd S 004bf68d 483) (running) 10.1 2000dfa4 (swarmbee S 2000e57c 9) (running) 11.1 2000db44 (telnetd S 2000dae8 0) (running) 12.1 2000d704 (tftpds S 2000d2f4 0) (running) 13.1 2000d324 (tftpds S 2000d2f0 0) (running) 14.1 2000d144 (tftpd S 2000d109 0) (running) 15.1 2000cea4 (psuctrl S 2000d0cc 96) (running) 16.1 2000ca44 (pmnet S 20004828 999) (running) 17.1 2000c324 (tcpip_thread S 2000c311 12) (running) 18.1 2000c0a4 (valves S 00484dd5 48) (running) 19.1 2000b3c4 (ssb_upd S 00000000 11) (running) 20.1 2000b0e4 (ssb_link S 004981a1 0) (running) 21.1 2000af24 (power S 00000000 1) (running) 22.1 2000acc4 (alive S 00000000 4) (running) 23.1 2000aaa4 (slow S 00000000 4) (running) 24.1 2000a944 (wdog S 00000000 29) (running) 25.1 2000a4e4 (dsp S 0048b401 73) (running) 26.1 20009cc4 (f83console S 2000e5c8 0) (running) * 27.1 20009784 (idle R 00000000 0) (running) (gdb) --- ../orig/gdb/inferior.c +++ ./gdb/inferior.c @@ -320,13 +320,27 @@ void discard_all_inferiors (void) { - struct inferior *inf; + struct inferior *inf, *infnext; - for (inf =3D inferior_list; inf; inf =3D inf->next) + for (inf =3D inferior_list; inf; inf =3D infnext) { - if (inf->pid !=3D 0) - exit_inferior_silent (inf->pid); + infnext =3D inf->next; + + if (inf->num =3D=3D 1) + { + if (inf->pid !=3D 0) + exit_inferior_1 (inf, 1); + } + else + delete_inferior (inf); } + + inferior_ptid =3D null_ptid; + inferior_list->pid =3D 0; + set_current_inferior (inferior_list); + switch_to_thread (null_ptid); + + highest_inferior_num =3D inferior_list->num; } struct inferior * --- ../orig/gdb/remote.c +++ ./gdb/remote.c @@ -1789,8 +1789,23 @@ /* In the traditional debugging scenario, there's a 1-1 match between program/address spaces. We simply bind the inferior to the program space's address space. */ - inf =3D current_inferior (); - inferior_appeared (inf, pid); + + inf =3D find_inferior_id (pid); + if (inf =3D=3D NULL) + { + if (current_inferior () ->pid =3D=3D 0) + { + inf =3D current_inferior (); + inferior_appeared (inf, pid); + } + else + { + inf =3D add_inferior (pid); + inf->aspace =3D current_inferior () ->aspace; + inf->pspace =3D current_program_space; + inf->gdbarch =3D current_inferior () ->gdbarch; + } + } } inf->attach_flag =3D attached; @@ -1801,6 +1816,10 @@ if (try_open_exec && get_exec_file (0) =3D=3D NULL) exec_file_locate_attach (pid, 0, 1); + set_current_inferior (inf); + + inferior_ptid =3D pid_to_ptid (pid); + return inf; } @@ -1902,6 +1921,9 @@ /* This is really a new thread. Add it. */ remote_add_thread (currthread, running, executing); + if (ptid_is_pid (inferior_ptid) + && pid =3D=3D ptid_get_pid (inferior_ptid)) + inferior_ptid =3D currthread; /* If we found a new inferior, let the common code do whatever it needs to with it (e.g., read shared libraries, insert Can anybody tell me how this is used at the moment and weather my patch is interfering with the current usage? I have done a second patch that limits stop_all_threads and restart_threads to the tasks belonging to the stopped inferior because I cannot stop all threads while debugging. Is there any interest in this? regards, Matthias --=20 Matthias Pfaller Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8131 5161 41 Hans-B=C3=B6ckler-Str. 2, D 85221 Dachau Fax +49 8131 5161 66 http://www.marco.de/ Email leo@marco.de Gesch=C3=A4ftsf=C3=BChrer Martin Reuter HRB 171775 Amtsgericht = M=C3=BCnchen --------------ms050805070708060302060405 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature Content-length: 5897 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG 9w0BBwEAAKCCC88wggXiMIIDyqADAgECAhBrp4p9CteI1lEK+Vnk57ThMA0G CSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENv bSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBT aWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhv cml0eTAeFw0xNTEyMTYwMTAwMDVaFw0zMDEyMTYwMTAwMDVaMHUxCzAJBgNV BAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFy dENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRD b20gQ2xhc3MgMSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQC9fdr3w6J9g/Zbgv3bW1+uHht1wLUZr5gkrLtXedg17AkefMyU GwrQdvwObhajcVmnKVxhrUwkZPXRAwZZosRHfEIi5FH7x6SV/8Sp5lZEuiMn vMFG2MzLA84J6Ws5T4NfXZ0qn4TPgnr3X2vPVS51M7Ua9nIJgn8jvTra4eyy QzxvuA/GZwKg7VQfDCmCS+kICslYYWgXOMt2xlsSslxLce0CGWRsT8EpMyt1 iDflSjXZIsE7m1uTyHaKZspMLyIyz6mySu8j8BWWHpChNNeTrFuhVfrOAyDP FJVUvKZCLKBhibTLloyy+LatoWELrjdI4a8StZY8+dIR9t4APXGzAgMBAAGj ggFkMIIBYDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0lBBYwFAYIKwYBBQUHAwIG CCsGAQUFBwMEMBIGA1UdEwEB/wQIMAYBAf8CAQAwMgYDVR0fBCswKTAnoCWg I4YhaHR0cDovL2NybC5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMGYGCCsGAQUF BwEBBFowWDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Auc3RhcnRzc2wuY29t MDAGCCsGAQUFBzAChiRodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9j YS5jcnQwHQYDVR0OBBYEFCSBbDlhvkkPj7cbRivJKLUnSG1oMB8GA1UdIwQY MBaAFE4L7xqkQFulF2mHMMo0aEPQQa7yMD8GA1UdIAQ4MDYwNAYEVR0gADAs MCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kw DQYJKoZIhvcNAQELBQADggIBAIvj94fsAYuErQ8BAluc4SMnIwS9NPBwAm5S H9uh2NCXTq7im61g7F1LIiNI/+wq37fUuaMbz4g7VarKQTgf8ubs0p7NZWcI e7Bvem2AWaXBsxsaRTYw5kG3DN8pd1hSEUuFoTa7DmNeFe8tiK1BrL3rbA/m 48jp4AiFXgvxprJrW7izsyetOrRHPbkW4Y07v29MdhaPv3u1JELyszXqOzjI Yo4sWlC8iDQXwgSW/ntvWy2n4LuiaozlCfXl149tKeqvwlvrla2Yklue/quW p9j9ou4T/OY0CXMuY+B8wNK0ohd2D4ShgFlMSjzAFRoHGKF81snTr2d1A7Ew 02oF6UQyCkC2aNNsK5cWOojBar5c7HplX9aHYUCZouxIeU28SONJAxnATgR4 cJ2jrpmYSz/kliUJ46S6UpVDo/ebn9c6PaM/XtDYCCaM/7XX6wc3s++sbQ7C tCn1Ax7df6ufQbwyO0V+oFa9H0KAsjHMzcwk3EV2B2NLatidKE/m7G+rB9m+ FlVgIiSp0mGlg43QO9Kh1+JqvTCIzv2bJJkmPMLQJNuKKwHNL8F4GGp6jbAV +WL+LDeGfVcq8DHS3LrD+xyYEXQBiqZEdiPVOMxLDSUCXsDO0uCWpaNQ8j6y 6S9p0xE/Ga0peVLadVHhqf9nXqKaxnr358VgfrxzUIrvOaOjMIIF5TCCBM2g AwIBAgIQIHbHM980Evwjct9SmnLqQjANBgkqhkiG9w0BAQsFADB1MQswCQYD VQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEpMCcGA1UECxMgU3Rh cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIzAhBgNVBAMTGlN0YXJ0 Q29tIENsYXNzIDEgQ2xpZW50IENBMB4XDTE2MDYyMDEyMDEzNVoXDTE5MDky MDEyMDEzNVowNDEVMBMGA1UEAwwMbGVvQG1hcmNvLmRlMRswGQYJKoZIhvcN AQkBFgxsZW9AbWFyY28uZGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQDSGmyTfoERpWTylzlGjS7CTXsKVjXq8HMfxPECInX4297aDGrZdVgY cLUqYDtQV7/U7v/NLwoVpiPu3vnJZwqNz6A1iyH+pIF2+RIBg6PMOAtZHfbD JyDqOsbPfS07aW+R+ZJBaMKX5XTONtJREmnfSuimz+xRkqG5iTUs7oqh69hl +uytf4yUq7OxBF8c4n/zvDO5FY7tcELpSSHUXvafU4MfkvuLqjR9ZMGf3b3+ cEMwCJ5ahWV58JecIE9cgrp6g/ZY5nRjARNdR89xgTGF08hKGWC4lBssiVCD Qu+gAMB9z/rJJ3JWeWAj3VJeWDrDHpWleH55mUNGGORKb/yDdOKwUtju8xqJ X16xS6bCME7f7BMlhrMDGupGYlAQLRrYp8hwq+Y17Hcy541q6kn44X7OnjFX schwiDJfcJ0zh8/26JR76sPEGZV+VHBPV1nO07IQoZz20X5fTHD8PVZXkorZ oKWCbopmQEUE9dvn9nImyINCt1E2qDLRVHKXJucbdpthpN+wAwMA8N4d5jgR nfOqdZ7Gu8h1GfM0Mj01mKvfyi/1nNWHopR8vTZ+uV062iGl5YLeAJFk2kqL b/hG9EHk+F0T4reeQsMLtk1H35M7kS8PlObXc4OlSGD/oDrb+jGfAqbueMhD xfxr83o6kup1Qpi/0rVkgv5FCj2dSwIDAQABo4IBsDCCAawwDgYDVR0PAQH/ BAQDAgSwMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAJBgNVHRME AjAAMB0GA1UdDgQWBBTn0WEZECQdirz6o75Ym30HEzJfTzAfBgNVHSMEGDAW gBQkgWw5Yb5JD4+3G0YrySi1J0htaDBvBggrBgEFBQcBAQRjMGEwJAYIKwYB BQUHMAGGGGh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbTA5BggrBgEFBQcwAoYt aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc2NhLmNsaWVudDEuY3J0 MDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL3Nj YS1jbGllbnQxLmNybDAXBgNVHREEEDAOgQxsZW9AbWFyY28uZGUwIwYDVR0S BBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMEcGA1UdIARAMD4wPAYL KwYBBAGBtTcBAgUwLTArBggrBgEFBQcCARYfaHR0cHM6Ly93d3cuc3RhcnRz c2wuY29tL3BvbGljeTANBgkqhkiG9w0BAQsFAAOCAQEAHev1G7qoycMr1K9q l8W+3BYh1AtFbT3SmTZLdHevy9XcWbd5x34WxjrrNC07L38bRKy7et3lXXpi bhTqfgweEUz3S7QK0oorFJ9lcN8IHc4NrH7E/JpTG6xkOP1KdlzpH4jYWQfK uOUSmw8hzaF1Jdz80ul4W5iPvRDPcKe1N5Zqjbh28rN91Cy7KszX8PoKzNa3 Rwpqix6v5XPnY02dPCkEgKntxRGfyF0Wr9oURy5XtXLTXA4gYIZW+t+9QX49 XpbJgpQHkzS8XuyMaE/0xdPywYzKVCByhzlIYwRekuENaOzuQFW6YRsYSRos 3kPEBQ+dShUt99yFAQIROUCLvzGCBOwwggToAgEBMIGJMHUxCzAJBgNVBAYT AklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFydENv bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRDb20g Q2xhc3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8I3LfUppy6kIwDQYJYIZIAWUD BAIDBQCgggIzMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTE2MTEyMTEyMzE1NVowTwYJKoZIhvcNAQkEMUIEQMaJUc3kzCsY tczYu52bN/gOgPQBEBOBwgPy95uYOPCEowhOHELj7GUnl9E/+5ODJg//psbf JfOr2Puv8Gz0ygEwbAYJKoZIhvcNAQkPMV8wXTALBglghkgBZQMEASowCwYJ YIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG 9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCBmgYJKwYBBAGCNxAE MYGMMIGJMHUxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQu MSkwJwYDVQQLEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEj MCEGA1UEAxMaU3RhcnRDb20gQ2xhc3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8 I3LfUppy6kIwgZwGCyqGSIb3DQEJEAILMYGMoIGJMHUxCzAJBgNVBAYTAklM MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFydENvbSBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRDb20gQ2xh c3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8I3LfUppy6kIwDQYJKoZIhvcNAQEB BQAEggIAmIrIM0UOQYaEMlppiPU86zNESKe18gLCCyFmC/OQz1DKQPt8Df41 xiQNHNyZ47st0JkKRRFg8O6Etn5RKKbc0dJ4cvB0pcxwvD11Wd25+vJIyJ9q ZbUEbycHmRURXmMlH9hfnBzAgl1SKMY9H46YZZ/u52e/drfR6z/qfFAJ6ie7 3eUrvID4hogqM4FyJzVDbQ6F9SU4qKYs0p27a5txdKMgaJUdDLnd+XjKwO/W VRcGVthJWOMCTDW94bGz5Fp7yWSkGF8fRqLmwAvUQYVVpj3iVSWOsmasJkSS 9gxm4U2g30JYRPmwZHh0fDg1ms/QyTaUX95H/noc+wPT3q9yWO1ykbVWc9Qj m+03503FmQF9baDtEooDaW60w4y2sQqoFFs2VJIBtbomojSExiu14MZhAC0S 3FyrZssF+c0w1B/txBIiwiVU5Lehk38wXAvMtUmAckrjBvTYYBelIsLMqRjC 0aAolofnxVLodJQnapLw/ctVOWaJLRI5DV0zIZBhrqxjA167gBNV/GnZ7ZhC 5cg99T58Bb137kqeXVxt8lvR2Iy8CAhoaXXEtt6QUTmm6b/+m/gKBjUVPIOT TX+L9AxTwWH7gWcUII6pBzKkAvdfmsh6K7MuGWIaTXciEMjKOMSts4dbzbP8 qQ6xkchcPJiNSzXRc/VCyihmoXtO3BIAAAAAAAA= --------------ms050805070708060302060405--