From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28221 invoked by alias); 6 Jun 2012 15:46:47 -0000 Received: (qmail 28210 invoked by uid 22791); 6 Jun 2012 15:46:45 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,TW_RG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from atlantis.wh2.tu-dresden.de (HELO atlantis.wh2.tu-dresden.de) (141.30.228.39) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 06 Jun 2012 15:46:14 +0000 Received: from [141.30.68.120] (m120.zih.tu-dresden.de [141.30.68.120]) by atlantis.wh2.tu-dresden.de (Postfix) with ESMTPSA id 3B5C683A6B9 for ; Wed, 6 Jun 2012 17:46:12 +0200 (CEST) Message-ID: <4FCF7B43.8070700@tu-dresden.de> Date: Wed, 06 Jun 2012 15:46:00 -0000 From: Joachim Protze User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: gdb@sourceware.org Subject: Re: Pythons scripting API question References: <4FC66293.5040908@cs.wisc.edu> <4FC68FD0.4060809@redhat.com> In-Reply-To: <4FC68FD0.4060809@redhat.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050809010203030601080408" 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 X-SW-Source: 2012-06/txt/msg00032.txt.bz2 This is a cryptographically signed message in MIME format. --------------ms050809010203030601080408 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1116 On 30.05.2012 23:23, Keith Seitz wrote: > Frames contain blocks, blocks contain variables. Blocks in python can > be iterated, so: > > $ ./gdb -nx -q gdb -ex "break main" -ex "run" > (gdb) python import gdb > (gdb) python for n in gdb.selected_frame().block(): print n, > argc argv args > (gdb) python print n.type > struct captured_main_args > (gdb) python print n.name > args > (gdb) python print n.is_argument > False > (gdb) python print n.value(gdb.selected_frame()) > {argc =3D 0, argv =3D 0x488f80 <_start>, use_windows =3D -8032, > interpreter_p =3D 0x0} > Thank you for this example! I never figured out this feature of Blocks :( > See the relevant sections in the Gdb Users Manual (23.2.2.16, 23.2.2.18). I totally miss the hint that Blocks drop Value objects on iteration in the documentation. How to access the "hierarchically organized" sub-blocks? Or did I missunderstand the concept of Blocks? main() { int i; for(...) { int a; } { int i; } } I would expect a Block for the main function with two children Blocks - but how to get these children? - Joachim --------------ms050809010203030601080408 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: 7194 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH AQAAoIIPtTCCBCEwggMJoAMCAQICAgDHMA0GCSqGSIb3DQEBBQUAMHExCzAJ BgNVBAYTAkRFMRwwGgYDVQQKExNEZXV0c2NoZSBUZWxla29tIEFHMR8wHQYD VQQLExZULVRlbGVTZWMgVHJ1c3QgQ2VudGVyMSMwIQYDVQQDExpEZXV0c2No ZSBUZWxla29tIFJvb3QgQ0EgMjAeFw0wNjEyMTkxMDI5MDBaFw0xOTA2MzAy MzU5MDBaMFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAw DgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9i YWwgLSBHMDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpm8Nn hfkNrvWNVMOWUDU9YuluTO2U1wBblSJ01CDrNI/W7MAxBAuZgeKmFNJSoCgj hIt0iQReW+DieMF4yxbLKDU5ey2QRdDtoAB6fL9KDhsAw4bpXCsxEXsM84Ik Q4wcOItqaACa7txPeKvSxhObdq3u3ibo7wGvdA/BCaL2a869080UME/15eOk yGKbghoDJzANAmVgTe3RCSMqljVYJ9N2xnG2kB3E7f81hn1vM7PbD8URwoqD oZRdQWvY0hD1TP3KUazZve+Sg7va64sWVlZDz+HVEz2mHycwzUlU28kTNJpx dcVs6qcLmPkhnSevPqM5OUhqjK3JmfvDEvK9AgMBAAGjgdkwgdYwcAYDVR0f BGkwZzBloGOgYYZfaHR0cDovL3BraS50ZWxlc2VjLmRlL2NnaS1iaW4vc2Vy dmljZS9hZl9Eb3dubG9hZEFSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkmLWlz c3Vlcj1EVF9ST09UX0NBXzIwHQYDVR0OBBYEFEm3xs/oPR9/6kR7Eyn38Qpw Pt5kMB8GA1UdIwQYMBaAFDHDeRu69VPXF+CJei0XbAqzK50zMA4GA1UdDwEB /wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMA0GCSqGSIb3DQEBBQUAA4IB AQA74Vp3wEgX3KkY7IGvWonwvSiSpspZGBJw7Cjy565/lizn8l0ZMfYTK3S9 vYCyufdnyTmieTvhERHua3iRM347XyYndVNljjNj7s9zw7CSI0khUHUjoR8Y 4pSFPT8z6XcgjaK95qGFKUD2P3MyWA0Ja6bahWzAP7uNZmRWJE6uDT8yNQFb 6YyC2XJZT7GGhfF0hVblw/hc843uR7NTBXDn5U2KaYMo4RMJhp5eyOpYHgwf +aTUWgRo/Sg+iwK2WLX2oSw3VwBnqyNojWOl75lrXP1LVvarQIc01BGSbOyH xQoLBzNytG8MHVQs2FHHzL8w00Ny8TK/jM5JY6gA9/IcMIIFEzCCA/ugAwIB AgIECpckLTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJERTETMBEGA1UE ChMKREZOLVZlcmVpbjEQMA4GA1UECxMHREZOLVBLSTEkMCIGA1UEAxMbREZO LVZlcmVpbiBQQ0EgR2xvYmFsIC0gRzAxMB4XDTA3MDYxOTA5NDkxOFoXDTE5 MDYxODAwMDAwMFowgYUxCzAJBgNVBAYTAkRFMSgwJgYDVQQKEx9UZWNobmlz Y2hlIFVuaXZlcnNpdGFldCBEcmVzZGVuMQwwCgYDVQQLEwNaSUgxHDAaBgNV BAMTE1RVIERyZXNkZW4gQ0EgLSBHMDIxIDAeBgkqhkiG9w0BCQEWEXBraUB0 dS1kcmVzZGVuLmRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA wQ4ek/NE9uzQJ/dQemELBDQVk/yxH2xj2oDs4TNcNQo8dyAgopWAoCXiD0Jg WU/UWpccRds9jhgz3EU7qnGhT5ILXRmsNQRRCF/pBntyLc9hpWiiz50AR8HK fjg4/DnYLw+MGamJL7I2g8dXJNrKRx1cSxIf+8m3sSS939c2rajyZCtnybjn nlM9yKe+LD6oSp90AOUOROCVB5b4d5eEwxa25hCDJ7Uaqyfi2htiQkNhvYXx FL8XqN2a+svPCHRvnex26flyZGWKDnp1SLZvc/mrc6PjQcXZlvJw9NMSQBud sUEsDeB0fqrY9AnJzLY+Nc17+rpdhO5bUbm6jTN7JwIDAQABo4IBszCCAa8w EgYDVR0TAQH/BAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFMUr U5MXg8n1RkLtQ2rftoCmR/LgMB8GA1UdIwQYMBaAFEm3xs/oPR9/6kR7Eyn3 8QpwPt5kMBwGA1UdEQQVMBOBEXBraUB0dS1kcmVzZGVuLmRlMIGIBgNVHR8E gYAwfjA9oDugOYY3aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9v dC1jYS9wdWIvY3JsL2NhY3JsLmNybDA9oDugOYY3aHR0cDovL2NkcDIucGNh LmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY3JsL2NhY3JsLmNybDCBogYI KwYBBQUHAQEEgZUwgZIwRwYIKwYBBQUHMAKGO2h0dHA6Ly9jZHAxLnBjYS5k Zm4uZGUvZ2xvYmFsLXJvb3QtY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MEcG CCsGAQUFBzAChjtodHRwOi8vY2RwMi5wY2EuZGZuLmRlL2dsb2JhbC1yb290 LWNhL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAQEA 2KD/xG/6ZPPIt2t1bZGxjOu+qi8ZEsBHFMW3umQpXbClmN8cV7KkYkrfTD/Q E8FV0S+Foymqf1q9zJXwMo5wXAvhqPDUuMcjca7F7oCq5mPJqrA0+Yd1tuQT n6377j8ubm4ukGUxhCTy2EilQmogUtC0b/AOZtycNc6Miq+9NO8Juo09ylGH sf420bhCC57v6WuXROAav2XTtvzHEULhrSEv57kRxthTK5fE19w/OpPtzRG+ NDtFAdv2dPrVlDhwh+b7j1DTCmk3CfktV1zNsc86VPdcqlO0CBSA1L+XXPBe l03DgEzErSd8PDcpwZ+KPBYrRLYBxcwbzKkxSPuylDCCBnUwggVdoAMCAQIC BxNIeLdKWMUwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkRFMSgwJgYD VQQKEx9UZWNobmlzY2hlIFVuaXZlcnNpdGFldCBEcmVzZGVuMQwwCgYDVQQL EwNaSUgxHDAaBgNVBAMTE1RVIERyZXNkZW4gQ0EgLSBHMDIxIDAeBgkqhkiG 9w0BCQEWEXBraUB0dS1kcmVzZGVuLmRlMB4XDTEyMDIwMTA4NDMyMFoXDTE1 MDEzMTA4NDMyMFowXjELMAkGA1UEBhMCREUxKDAmBgNVBAoTH1RlY2huaXNj aGUgVW5pdmVyc2l0YWV0IERyZXNkZW4xDDAKBgNVBAsTA1pJSDEXMBUGA1UE AxMOSm9hY2hpbSBQcm90emUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQDBM3Iv/Nx6g0Nv+G27BwNY2hYRtFZGX1qKmL/JUaFfv6osGdwMryP0 QZE1k1oorRIVgKxK+BAUp7vhbuXMBEYyD121qbbsU3ohL0moFaXtSrDFeIAC D1W9IOR1syaUoEQ0QI6c6ppsYWjnn97JO1YpeD927sBhT3NZEiCJFN99Oznd MnE/FWhLY7zauWfckDNgeABhnjL44j5UqYlr5DYy62fkEeEYHvRs+mIjvsR2 I0X0l73lR8YVZ/boTL8HxhlVc0w2vQOJVeSqYEiwNdQ+8BD9EWVgR6zp4agh oLHg7DRr6fsWc73F2Vmjnok7ssQ5ltBj3bNBnw+c6yUaqsHPK+hBYujFfYw2 szJOhZtiJYNTasr9jw55nayvsgWWZeLL5ZL76IZr3BudTNRr7hF9FAatzCko 4do8MPXMGkoBQUt68vAaV/y8fMqO2q22jJJVWm4DZeY7ELlqo2lr1EXLmO/G iUX38IGGuM5JiqyOiJVzhS5dNbZ4U9pnrwWIDCBjrEG21TRz1MmFiG9vIXVu 7GoRiMgTBn8SG3yGAfhtdFZ2vvwDkkfsC2a5Kc+5ChvWlgVMgW2mKy4jning jrWzdLtXeBTW8Na8WYeKShvEqVE/PRlX82TSmTUuk/We6PAdxjFK2cpJR/PB D8GcrWgow8tPIEVG/OzudMgrS61AGQIDAQABo4ICDjCCAgowCQYDVR0TBAIw ADALBgNVHQ8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwME MB0GA1UdDgQWBBTUcDavc6qIF5OvM4mcljmx9IINLzAfBgNVHSMEGDAWgBTF K1OTF4PJ9UZC7UNq37aApkfy4DAnBgNVHREEIDAegRxqb2FjaGltLnByb3R6 ZUB0dS1kcmVzZGVuLmRlMIGLBgNVHR8EgYMwgYAwPqA8oDqGOGh0dHA6Ly9j ZHAxLnBjYS5kZm4uZGUvdHUtZHJlc2Rlbi1jYS9wdWIvY3JsL2dfY2Fjcmwu Y3JsMD6gPKA6hjhodHRwOi8vY2RwMi5wY2EuZGZuLmRlL3R1LWRyZXNkZW4t Y2EvcHViL2NybC9nX2NhY3JsLmNybDCB2QYIKwYBBQUHAQEEgcwwgckwMwYI KwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIv T0NTUDBIBggrBgEFBQcwAoY8aHR0cDovL2NkcDEucGNhLmRmbi5kZS90dS1k cmVzZGVuLWNhL3B1Yi9jYWNlcnQvZ19jYWNlcnQuY3J0MEgGCCsGAQUFBzAC hjxodHRwOi8vY2RwMi5wY2EuZGZuLmRlL3R1LWRyZXNkZW4tY2EvcHViL2Nh Y2VydC9nX2NhY2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggEBAFh89gg3x8Np cb0kLtVrxlJ/LEckW5WQm0FN0oD6bnt6AP3rEGVQTXQypJ0m89Qc4XdT8EDz e/9E/Gtu720w/A/8LX4tP0NdgyF1xJ6y3YB2uwUa9mAOUU1dJ6y0lojGP5RI Mr1GZ71HzaHg+C6Rop4XtqnrjZZjhL2g0skE1kS4pf7k8cFEJ6WvqWn9GTtP HvTmHbawgYiUilQoE4mTXZSvfmJpkqPYF3mQkYU9vCRVSWsg4SelEcO1p04J wJCdcoQQsh62o/Po2vZUbCydtT2dK2yAu+IJYiGuxUlzcVxJdBZHLtI2YHR6 CsWNYNnu3irOA7AwLvYeBezbxmdfRbcxggTHMIIEwwIBATCBkTCBhTELMAkG A1UEBhMCREUxKDAmBgNVBAoTH1RlY2huaXNjaGUgVW5pdmVyc2l0YWV0IERy ZXNkZW4xDDAKBgNVBAsTA1pJSDEcMBoGA1UEAxMTVFUgRHJlc2RlbiBDQSAt IEcwMjEgMB4GCSqGSIb3DQEJARYRcGtpQHR1LWRyZXNkZW4uZGUCBxNIeLdK WMUwCQYFKw4DAhoFAKCCAgowGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc BgkqhkiG9w0BCQUxDxcNMTIwNjA2MTU0NjExWjAjBgkqhkiG9w0BCQQxFgQU xE6ColU1kG/sqVwvhVWwf8nYewIwXwYJKoZIhvcNAQkPMVIwUDALBglghkgB ZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMC AgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGiBgkrBgEEAYI3EAQxgZQw gZEwgYUxCzAJBgNVBAYTAkRFMSgwJgYDVQQKEx9UZWNobmlzY2hlIFVuaXZl cnNpdGFldCBEcmVzZGVuMQwwCgYDVQQLEwNaSUgxHDAaBgNVBAMTE1RVIERy ZXNkZW4gQ0EgLSBHMDIxIDAeBgkqhkiG9w0BCQEWEXBraUB0dS1kcmVzZGVu LmRlAgcTSHi3SljFMIGkBgsqhkiG9w0BCRACCzGBlKCBkTCBhTELMAkGA1UE BhMCREUxKDAmBgNVBAoTH1RlY2huaXNjaGUgVW5pdmVyc2l0YWV0IERyZXNk ZW4xDDAKBgNVBAsTA1pJSDEcMBoGA1UEAxMTVFUgRHJlc2RlbiBDQSAtIEcw MjEgMB4GCSqGSIb3DQEJARYRcGtpQHR1LWRyZXNkZW4uZGUCBxNIeLdKWMUw DQYJKoZIhvcNAQEBBQAEggIAsDcdLTXrimmq9RhnmfcidmUfM0bcQyeDOWUr e1P3rJDp5zKbOwDsI3RR2aB7ItMGt/froz7caYLOObbqEk/wxgeYfjn7gL8R 3Jho7IFXCEEBeQG6nFYDao9m/Xj6EzIJhW2wdTf/E8npverzFhYPSpre+pKJ aWfMUDN070B/JT8aZubpJBvy3KdluvUCAZqdiKoBzdsOesAQhIrleWtcA19W OtexRBfrHpAMNHe1yebiVU5AAm91mp+6NbS37FVNcfVo1jnBYHBp5UN2U0iS vZ/HT8r2jhiiKyLguvuDTCQqAv6PelgY9JXvHrK7OY0kwIH/USbpjk7Uos3D kEAYBK6vWXOcoBTN+FttzHuQxI1c3EgxholHPWyOwtoWry3OUMel8UVKINub Kb9wa1tokl4Qvs1i1lRjXDNyzZKl4RbSrwtot9R8sFHKkqwp6HrW4R6DfFMq 9DI5by+Aiq955uYijsc88YRb3qiUNFutJtiPBQ1G9AWurJNx61VbItPLDr2w +ighMfQmqEMDsUsocY8nu668Xp0WIhW5PQu/O+L2u2yVYUqj19VNKINn/kRk M6jQb892cd7Iv4r+yeJJVaK6OxQ5f0tXGZG1DRgbJAXWY+1DUkueZjPSdqNg Bxk4Qiq3ZPehVyBTvF7rNo4yAdVhK7MoFRZrr/jM7gBUZ7kAAAAAAAA= --------------ms050809010203030601080408--