From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1LbGLk-0004jM-Ty for mharc-grub-devel@gnu.org; Sun, 22 Feb 2009 10:34:36 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LbGLj-0004hE-9K for grub-devel@gnu.org; Sun, 22 Feb 2009 10:34:35 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LbGLi-0004fv-E3 for grub-devel@gnu.org; Sun, 22 Feb 2009 10:34:34 -0500 Received: from [199.232.76.173] (port=41575 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LbGLi-0004fa-4C for grub-devel@gnu.org; Sun, 22 Feb 2009 10:34:34 -0500 Received: from mta-out.inet.fi ([195.156.147.13]:50450 helo=kirsi1.inet.fi) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LbGLg-0001c4-T0 for grub-devel@gnu.org; Sun, 22 Feb 2009 10:34:33 -0500 Received: from [192.168.1.102] (84.248.105.254) by kirsi1.inet.fi (8.5.014) id 48FC5AC90561B75F for grub-devel@gnu.org; Sun, 22 Feb 2009 17:34:27 +0200 Message-ID: <49A1707A.2060208@nic.fi> Date: Sun, 22 Feb 2009 17:34:18 +0200 From: =?UTF-8?B?VmVzYSBKw6TDpHNrZWzDpGluZW4=?= User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 To: The development of GRUB 2 X-Enigmail-Version: 0.95.7 Content-Type: multipart/mixed; boundary="------------030600000309040505040709" X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Subject: qemu + gdb debugging... X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Feb 2009 15:34:35 -0000 This is a multi-part message in MIME format. --------------030600000309040505040709 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Hi All, I was debugging some problem lately and felt that I need to use debugger. As I like how JTAG debugging works I wanted to have similar feeling :). Obivious choice is to use QEMU. QEMU provides a GDB stub that can be used to debug code running on its virtual session. I also found out that VMware also features this same feature, though it needs a bit configuration changes. Anyway... In order for GDB session to be a bit fancier you are going to need debug symbols. In order to do that we need Lubomir Rintel's patch to support debug symbol generation. (Adapted version is attached to this email). After this everything is ready in GRUB 2 building. Next steps is to improve GDB handling to support our dynamic module loader. For this Lubomir's scripts for GDB comes in to play. I adapted them a bit for new naming and after this I could nicely add breakpoint to code that gets loaded later on by GRUB module loader and it stopped nicely there on correct spot. Based on this finding I would say that we integrate following bits of cod= e. Lubomir also create GDB stub that allows debugging on real hardware over serial cable. This is fine for me, but at this time I only need to have QEMU debugging working. And as this step is shared between those two I propose that this work is sliced to two pieces. Thanks, Vesa J=C3=A4=C3=A4skel=C3=A4inen --------------030600000309040505040709 Content-Type: text/plain; name="grub2-debug-symbols.diff" Content-Disposition: inline; filename="grub2-debug-symbols.diff" Content-Transfer-Encoding: Base64 SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9u IDE5OTkpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMSBAQAor MjAwOS0wMi0yMiAgVmVzYSBKw6TDpHNrZWzDpGluZW4gIDxjaGFhY0BuaWMuZmk+CisKKwlC YXNlZCBvbiBwYXRjaCBieSBMdWJvbWlyIFJpbnRlbCA8bGt1bmRyYWtAZmVkb3JhcHJvamVj dC5vcmc+LgorCisJKiBnZW5tay5yYjogQWRkIG5ldyBzdGFnZSB0byBjb21waWxlIGZpcnN0 IGRlYnVnIHN5bWJvbCB2ZXJzaW9uIG9mCisJbW9kdWxlIGFuZCB0aGVuIHVzZSBvYmpjb3B5 IHRvIGdlbmVyYXRlIGZpbmFsIGltYWdlIHRvIGFsbG93IGVhc2llcgorCWRlYnVnZ2luZy4K KwogMjAwOS0wMi0yMiAgUm9iZXJ0IE1pbGxhbiAgPHJtaEBheWJhYnR1LmNvbT4KIAogCSog aW5jbHVkZS9tdWx0aWJvb3QuaCAoTVVMVElCT09UX0lORk9fQUxJR04pOiBOZXcgbWFjcm8u CkluZGV4OiBnZW5tay5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZW5tay5yYgkocmV2aXNpb24g MTk5NikKKysrIGdlbm1rLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsMTAgKzEwMSwxMSBA QAogICAgIG1vZF9vYmogPSBtb2Rfc3JjLnN1ZmZpeCgnbycpCiAgICAgZGVmc3ltID0gJ2Rl Zi0nICsgQG5hbWUuc3VmZml4KCdsc3QnKQogICAgIHVuZHN5bSA9ICd1bmQtJyArIEBuYW1l LnN1ZmZpeCgnbHN0JykKKyAgICBleGVjID0gQG5hbWUuc3VmZml4KCdtb2QuZXhlYycpCiAg ICAgbW9kX25hbWUgPSBGaWxlLmJhc2VuYW1lKEBuYW1lLCAnLm1vZCcpCiAgICAgc3ltYm9s aWNfbmFtZSA9IG1vZF9uYW1lLnN1YigvXC5bXlwuXSokLywgJycpCiAgICAgCi0gICAgIkNM RUFORklMRVMgKz0gI3tAbmFtZX0gI3ttb2Rfb2JqfSAje21vZF9zcmN9ICN7cHJlX29ian0g I3tvYmpzX3N0cn0gI3t1bmRzeW19CisgICAgIkNMRUFORklMRVMgKz0gI3tAbmFtZX0gI3tt b2Rfb2JqfSAje21vZF9zcmN9ICN7cHJlX29ian0gI3tvYmpzX3N0cn0gI3t1bmRzeW19ICN7 ZXhlY30KIGlmbmVxICgkKCN7cHJlZml4fV9FWFBPUlRTKSxubykKIENMRUFORklMRVMgKz0g I3tkZWZzeW19CiBERUZTWU1GSUxFUyArPSAje2RlZnN5bX0KQEAgLTExMiwxMSArMTEzLDE0 IEBACiBNT1NUTFlDTEVBTkZJTEVTICs9ICN7ZGVwc19zdHJ9CiBVTkRTWU1GSUxFUyArPSAj e3VuZHN5bX0KIAotI3tAbmFtZX06ICN7cHJlX29ian0gI3ttb2Rfb2JqfSAkKFRBUkdFVF9P QkoyRUxGKQorI3tAbmFtZX06ICN7ZXhlY30KKwktcm0gLWYgJEAKKwkkKE9CSkNPUFkpIC0t c3RyaXAtdW5uZWVkZWQgLUsgZ3J1Yl9tb2RfaW5pdCAtSyBncnViX21vZF9maW5pIC1LIF9n cnViX21vZF9pbml0IC1LIF9ncnViX21vZF9maW5pIC1SIC5ub3RlIC1SIC5jb21tZW50ICRe ICRACisKKyN7ZXhlY306ICN7cHJlX29ian0gI3ttb2Rfb2JqfSAkKFRBUkdFVF9PQkoyRUxG KQogCS1ybSAtZiAkQAogCSQoVEFSR0VUX0NDKSAkKCN7cHJlZml4fV9MREZMQUdTKSAkKFRB UkdFVF9MREZMQUdTKSAkKE1PRFVMRV9MREZMQUdTKSAtV2wsLXIsLWQgLW8gJEAgI3twcmVf b2JqfSAje21vZF9vYmp9CiAJaWYgdGVzdCAhIC16ICQoVEFSR0VUX09CSjJFTEYpOyB0aGVu IC4vJChUQVJHRVRfT0JKMkVMRikgJEAgfHwgKHJtIC1mICRAOyBleGl0IDEpOyBmaQotCSQo U1RSSVApIC0tc3RyaXAtdW5uZWVkZWQgLUsgZ3J1Yl9tb2RfaW5pdCAtSyBncnViX21vZF9m aW5pIC1LIF9ncnViX21vZF9pbml0IC1LIF9ncnViX21vZF9maW5pIC1SIC5ub3RlIC1SIC5j b21tZW50ICRACiAKICN7cHJlX29ian06ICQoI3twcmVmaXh9X0RFUEVOREVOQ0lFUykgI3tv YmpzX3N0cn0KIAktcm0gLWYgJEAK --------------030600000309040505040709 Content-Type: text/plain; name="gmodule.pl" Content-Disposition: inline; filename="gmodule.pl" Content-Transfer-Encoding: Base64 IyBnbW9kdWxlLnBsIC0gR2VuZXJhdGUgR0RCIGNvbW1hbmRzIHRvIGxvYWQgc3ltYm9scyB0 byByaWdodCBhZGRyZXNzZXMKCiMgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRl cgojIENvcHlyaWdodCAoQykgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiMgCiMgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgCiMgR1JVQiBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgCiMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp3aGls ZSAoPD4pIHsKCSMgTGluZSB3ZSBnZXQgY29udGFpbnMgc2VjdGlvbiBudW1iZXIgLSBsb2Fk IGFkZHJlc3MgcGFpcnMKCSMgcHJlcGVuZGVkIGJ5IG1vZHVsZSBuYW1lCglteSAoJGZpbGUs ICVsb2FkX2FkZHIpID0gc3BsaXQ7CgoJbXkgJHRleHQgPSAnJzsJCSMgVGhpcyBvbmUgbmVl ZHMgbm90IGJlIHByZXBlbmRlZCBieSAtcwoJbXkgJHNlY3Rpb25zID0gJyc7CSMgQWxsIGJ1 dCAudGV4dAoKCXByaW50ICJhZGQtc3ltYm9sLWZpbGUgJGZpbGUiOwoKCW9wZW4gKFJFQURF TEYsICJyZWFkZWxmIC1TICRmaWxlIHwiKQoJCW9yIGRpZSAkITsKCgl3aGlsZSAoPFJFQURF TEY+KSB7CgoJCS9cW1xzKihcZCspXF1ccysoXC5cUyspLyBvciBuZXh0OwoJCW15ICRzZWNf bnVtID0gJDE7CgkJbXkgJHNlY19uYW1lID0gJDI7CgoJCSMgLnRleHQgc2VjdGlvbiBkb2Vz bid0IGhhdmUgdG8gYmUgcHJlcGVuZGVkIGJ5IC1zIC50ZXh0CgkJaWYgKCRzZWNfbmFtZSBl cSAnLnRleHQnKSB7CgkJCSR0ZXh0ID0gJGxvYWRfYWRkcnskc2VjX251bX07CgkJCW5leHQ7 CgkJfQoKCQkkc2VjdGlvbnMgLj0gIiAtcyAkc2VjX25hbWUgJGxvYWRfYWRkcnskc2VjX251 bX0iCgkJCWlmICgkbG9hZF9hZGRyeyRzZWNfbnVtfSBhbmQgJGxvYWRfYWRkcnskc2VjX251 bX0gbmUgJzB4MCcpOwoJfTsKCWNsb3NlIChSRUFERUxGKTsKCXByaW50ICIgJHRleHQgJHNl Y3Rpb25zXG4iOwp9Cg== --------------030600000309040505040709 Content-Type: text/plain; name="grub.gdb" Content-Disposition: inline; filename="grub.gdb" Content-Transfer-Encoding: Base64 IyBncnViLmdkYiAtIE1hY3JvcyB0byBlYXNlIGRlYnVnZ2luZyBvZiBHUlVCIGFuZCBpdHMg bW9kdWxlcyB3aXRoIEdEQgoKIyBHUlVCICAtLSAgR1JhbmQgVW5pZmllZCBCb290bG9hZGVy CiMgQ29weXJpZ2h0IChDKSAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K IyAKIyBHUlVCIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyAKIyBHUlVCIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyAKIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQojIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KCiMKIyBMb2FkIGRlYnVnaW5nIGluZm9ybWF0aW9uIGFi b3V0IEdOVSBHUlVCIDIgbW9kdWxlcyBpbnRvIEdEQgojIGF1dG9tYXRpY2FsbHkuIE5lZWRz IHJlYWRlbGYsIFBlcmwgYW5kIGdtb2R1bGUucGwgc2NyaXB0CiMKIyBOb3RlOiBicmVha19s b2FkIGNvbW1hbmQgd29uJ3Qgd29yayB3aXRoIEdEQiB1cCB0byA2LjYgZHVlIHRvCiMgYnVn IGluIHByb2Nlc3NpbmcgYnJlYWtwb2ludCBjb21tYW5kIGhvb2tzLiBHREIgNi44IHdvcmtz IGZpbmUuCiMKCiMgVGhpcyBpcyBuZWVkZWQgZXNwZWNpYWxseSBvbiBMaW51eCwgc28gdGhh dCB0aGUgZGVidWdnZXIgZG9lc24ndAojIHJlcXVlc3Qgc3BlY2lhbCByZWdpc3RlciB2YWx1 ZXMgd2hpY2ggd2UgZG8gbm90IGtub3cgYWJvdXQKc2V0IG9zYWJpIG5vbmUKCmRlZmluZSBf Y2xlYW51cAoJc2hlbGwgcm0gLWYgLnNlZ21lbnRzLnRtcCAubG9hZHN5bS5nZGIKZW5kCgoj IEFkZCBzZWN0aW9uIG51bWJlcnMgYW5kIGFkZHJlc3NlcyB0byAuc2VnbWVudHMudG1wCmRl ZmluZSBfZHVtcF9tb2R1bGVfc2VjdGlvbnMKCXNldCAkbW9kID0gJGFyZzAKCgkjIEZJWE1F OiBzYXZlIGxvZ2dpbmcgc3RhdHVzCglzZXQgbG9nZ2luZyBmaWxlIC5zZWdtZW50cy50bXAK CXNldCBsb2dnaW5nIHJlZGlyZWN0IG9uCglzZXQgbG9nZ2luZyBvdmVyd3JpdGUgb2ZmCglz ZXQgbG9nZ2luZyBvbgoKCXByaW50ZiAiJXMubW9kLmV4ZWMiLCAkbW9kLT5uYW1lCglzZXQg JHNlZ21lbnQgPSAkbW9kLT5zZWdtZW50Cgl3aGlsZSAoJHNlZ21lbnQpCgkJcHJpbnRmICIg JWkgMHgleCIsICRzZWdtZW50LT5zZWN0aW9uLCAkc2VnbWVudC0+YWRkcgoJCXNldCAkc2Vn bWVudCA9ICRzZWdtZW50LT5uZXh0CgllbmQKCXByaW50ZiAiXG4iCgoJc2V0IGxvZ2dpbmcg b2ZmCgkjIEZJWE1FOiByZXN0b3JlIGxvZ2dpbmcgc3RhdHVzCmVuZApkb2N1bWVudCBfZHVt cF9tb2R1bGVfc2VjdGlvbnMKCUdhdGhlciBpbmZvcm1hdGlvbiBhYm91dCBtb2R1bGUgd2hv c2UgbW9kIHN0cnVjdHVyZSB3YXMKCWdpdmVuIGZvciB1c2Ugd2l0aCBtYXRjaF9hbmRfbG9h ZF9zeW1ib2xzCmVuZAoKIyBHZW5lcmF0ZSBhbmQgZXhlY3V0ZSBHREIgY29tbWFuZHMgYW5k IGRlbGV0ZSB0ZW1wb3JhcnkgZmlsZXMKIyBhZnRlcndhcmRzCmRlZmluZSBfbWF0Y2hfYW5k X2xvYWRfc3ltYm9scwoJc2hlbGwgcGVybCBnbW9kdWxlLnBsIDwuc2VnbWVudHMudG1wID4u bG9hZHN5bS5nZGIKCXNvdXJjZSAubG9hZHN5bS5nZGIKCV9jbGVhbnVwCmVuZApkb2N1bWVu dCBfbWF0Y2hfYW5kX2xvYWRfc3ltYm9scwoJTGF1bmNoIHNjcmlwdCwgdGhhdCBtYXRjaGVz IHNlY3Rpb24gbmFtZXMgd2l0aCBpbmZvcm1hdGlvbgoJZ2VuZXJhdGVkIGJ5IGR1bXBfbW9k dWxlX3NlY3Rpb25zIGFuZCBsb2FkIGRlYnVnZ2luZyBpbmZvCglhcHJvcHJpYXRlbHkKZW5k CgpkZWZpbmUgbG9hZF9tb2R1bGUKCV9jbGVhbnVwCglfZHVtcF9tb2R1bGVfc2VjdGlvbnMg JGFyZzAKCV9tYXRjaF9hbmRfbG9hZF9zeW1ib2xzCmVuZApkb2N1bWVudCBsb2FkX21vZHVs ZQoJTG9hZCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIG1vZHVsZSBnaXZlbiBhcyBhcmd1 bWVudC4KZW5kCgpkZWZpbmUgbG9hZF9tb2R1bGVzCglfY2xlYW51cAoJc2V0ICR0aGlzID0g Z3J1Yl9kbF9oZWFkCgl3aGlsZSAoJHRoaXMgIT0gMCkKCQlfZHVtcF9tb2R1bGVfc2VjdGlv bnMgJHRoaXMtPm1vZAoJCXNldCAkdGhpcyA9ICR0aGlzLT5uZXh0CgllbmQKCV9tYXRjaF9h bmRfbG9hZF9zeW1ib2xzCmVuZApkb2N1bWVudCBsb2FkX21vZHVsZXMKCUxvYWQgZGVidWdn aW5nIGluZm9ybWF0aW9uIGZvciBhbGwgbG9hZGVkIG1vZHVsZXMuCmVuZAoKZGVmaW5lIGxv YWRfa2VybmVsCglmaWxlIGtlcm5lbC5leGVjCmVuZApkb2N1bWVudCBsb2FkX2tlcm5lbAoJ TG9hZCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIGtlcm5lbC4KZW5kCgpkZWZpbmUgYnJl YWtfbG9hZAoJIyBMb2FkIGRlYnVnZ2luZyBzeW1ib2xzIGZvciBtb2R1bGUgd2hlbiBpdCdz IGxvYWRlZAoJYnJlYWsgZ3J1Yl9kbF9yZWYKCWNvbW1hbmRzCgkJbG9hZF9tb2R1bGUgbW9k CgkJY29udAoJZW5kCmVuZApkb2N1bWVudCBicmVha19sb2FkCglNYWtlIG1vZHVsZXMgbG9h ZCBhdXRvbWF0aWNhbGx5LgplbmQK --------------030600000309040505040709--