From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I5wik-0004X5-Si for qemu-devel@nongnu.org; Wed, 04 Jul 2007 00:44:06 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I5wij-0004Wt-Cv for qemu-devel@nongnu.org; Wed, 04 Jul 2007 00:44:05 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I5wij-0004Wq-69 for qemu-devel@nongnu.org; Wed, 04 Jul 2007 00:44:05 -0400 Received: from py-out-1112.google.com ([64.233.166.181]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1I5wii-0001gL-GM for qemu-devel@nongnu.org; Wed, 04 Jul 2007 00:44:04 -0400 Received: by py-out-1112.google.com with SMTP id f47so3906789pye for ; Tue, 03 Jul 2007 21:44:03 -0700 (PDT) Message-ID: Date: Wed, 4 Jul 2007 13:44:03 +0900 From: "Magnus Damm" Subject: Re: [Qemu-devel] sh4: more patches In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_84008_1940740.1183524243813" References: Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org ------=_Part_84008_1940740.1183524243813 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 6/26/07, Blue Swirl wrote: > On 6/22/07, Magnus Damm wrote: > > The method used to locate emulation bugs may be of value for other > > fellow qemu hackers. I've written a small gdb script that single steps > > in an endless loop dumping registers between each instruction. Then > > I've used this script on both real target hardware (using gdbserver) > > and using the gdbstub provided by qemu. Finally the traces have been > > compared. I have more patches for this if anyone is interested... > > I'm interested in the scripts, those could be helpful to get Sparc64 > bugs exterminated. Ok, to begin with I've attached two patches needed for this to work on sh4. They are in quite hairy shape and not ready for upstream merge. I don't plan on submitting them upstream any time in the future - they are just useful for debugging. Anyway, I suspect you need to implement something similar for sparc64 as well. Together with the patches I've attached two gdb scripts. This is how I generate a trace on the target system: 1. Boot up a recent Linux kernel on your target hardware. 2. Bring up your network interfaces. 3. Disable vma randomization and maybe vdso as well using: # echo 0 > /proc/sys/vm/vdso_enabled # echo 0 > /proc/sys/kernel/randomize_va_space 4. Start your test program on the target using gdbserver and "env -i": # env -i ./gdbserver localhost:1234 test-static-sh4 5. Start cross-gdb on your host and pass the target script: $ ./gdb -x gdb-script-target > trace-target 6. Wait until gdb exits, ignore error message Then I do the same thing on the host using qemu-sh4: 1. Make sure vma randomization is disabled on the host: # echo 0 > /proc/sys/kernel/randomize_va_space 2. Start your test program using qemu-sh4 and "env -i" $ env -i /path/to/qemu-sh4 -g 1234 test-static-sh4 3. Start cross-gdb on your host and pass the host script: $ ./gdb -x gdb-script > trace 4. Wait until gdb exits, ignore error message Then just diff the two traces! Have fun! / magnus ------=_Part_84008_1940740.1183524243813 Content-Type: application/octet-stream; name=qemu-cvs_20070703-sh4-behave-as-gdbserver.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f3pay7k6 Content-Disposition: attachment; filename="qemu-cvs_20070703-sh4-behave-as-gdbserver.patch" c2g0OiBiZWhhdmUgYXMgZ2Ric2VydmVyCgpUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBzaDQgdXNl ciBzcGFjZSBlbXVsYXRvciB0byBiZWhhdmUgbGlrZSBnZGJzZXJ2ZXIuCkdkYnNlcnZlciBzdGVw cyBvdmVyIGRlbGF5IHNsb3RzIGFuZCBkb2VzIG5vdCBvdXRwdXQgYmFua2VkIHJlZ2lzdGVycy4K ClNpZ25lZC1vZmYtYnk6IE1hZ251cyBEYW1tIDxkYW1tQGlnZWwuY28uanA+CgotLS0gMDAwMS9n ZGJzdHViLmMKKysrIHdvcmsvZ2Ric3R1Yi5jCTIwMDctMDctMDMgMTc6NTQ6MDUuMDAwMDAwMDAw ICswOTAwCkBAIC02ODUsOCArNjg1LDEwIEBAIHN0YXRpYyBpbnQgY3B1X2dkYl9yZWFkX3JlZ2lz dGVycyhDUFVTdGEKICAgICAgIFNBVkUoZW52LT5mcmVnc1tpICsgKChlbnYtPmZwc2NyICYgRlBT Q1JfRlIpID8gMTYgOiAwKV0pOwogICBTQVZFIChlbnYtPnNzcik7CiAgIFNBVkUgKGVudi0+c3Bj KTsKKyNpZm5kZWYgQ09ORklHX1VTRVJfT05MWSAvKiBiZWhhdmUgbGlrZSBnZGJzZXJ2ZXIgKi8K ICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgU0FWRShlbnYtPmdyZWdzW2ldKTsKICAgZm9yIChp ID0gMDsgaSA8IDg7IGkrKykgU0FWRShlbnYtPmdyZWdzW2kgKyAxNl0pOworI2VuZGlmCiAgIHJl dHVybiAoKHVpbnQ4X3QgKilwdHIgLSBtZW1fYnVmKTsKIH0KIAotLS0gMDAwMS90YXJnZXQtc2g0 L3RyYW5zbGF0ZS5jCisrKyB3b3JrL3RhcmdldC1zaDQvdHJhbnNsYXRlLmMJMjAwNy0wNy0wMyAx Nzo1ODowNC4wMDAwMDAwMDAgKzA5MDAKQEAgLTEyMTUsNyArMTIxNSw4IEBAIGdlbl9pbnRlcm1l ZGlhdGVfY29kZV9pbnRlcm5hbChDUFVTdGF0ZSAKIAljdHgucGMgKz0gMjsKIAlpZiAoKGN0eC5w YyAmIChUQVJHRVRfUEFHRV9TSVpFIC0gMSkpID09IDApCiAJICAgIGJyZWFrOwotCWlmIChlbnYt PnNpbmdsZXN0ZXBfZW5hYmxlZCkKKwlpZiAoZW52LT5zaW5nbGVzdGVwX2VuYWJsZWQgJiYgLyog Z2Ric2VydmVyIHN0ZXBzIG92ZXIgZGVsYXkgc2xvdHMgKi8KKwkgICAgIShjdHguZmxhZ3MgJiAo REVMQVlfU0xPVCB8IERFTEFZX1NMT1RfQ09ORElUSU9OQUwpKSkKIAkgICAgYnJlYWs7CiAjaWZk ZWYgU0g0X1NJTkdMRV9TVEVQCiAJYnJlYWs7Cg== ------=_Part_84008_1940740.1183524243813 Content-Type: application/octet-stream; name=qemu-cvs_20070607-sh4-stack-placement-elf-auxv.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f3payle2 Content-Disposition: attachment; filename="qemu-cvs_20070607-sh4-stack-placement-elf-auxv.patch" c2g0OiBwb3NpdGlvbiBzdGFjayBhcyByZWFsIGhhcmR3YXJlIGFuZCB1cGRhdGUgYXV4diBlbnRy aWVzCgpUaGlzIHBhdGNoIG1ha2VzIHRoZSBzaDQgdXNlciBzcGFjZSBlbXVsYXRvciBmb3IgbGlu dXggYmVoYXZlIGxpa2UKdGhlIGxpbnV4IGVudmlyb25tZW50IG9uIG15IHRhcmdldCBkZXZpY2Uu IFRoZSBtYWluIHBhcnQgb2YgdGhlIHBhdGNoCnJlb3JkZXJzIGFuZCB1cGRhdGVzIHRoZSBhdXh2 IGVudHJpZXMgdG8gbWF0Y2ggdGhlIHRhcmdldCBrZXJuZWwuIEEgc21hbGwKYnV0IGltcG9ydGFu dCBjaGFuZ2UgaXMgdGhlIGhhcmRjb2RlZCBzdGFjayBwbGFjZW1lbnQuIFRoZSB2YWx1ZSB1c2Vk IGlzCmlkZW50aWNhbCB0byB0aGUgc2g0IHRhcmdldCBwbGFjZW1lbnQgYW5kIGl0IGhhcHBlbnMg dG8gd29yayB3ZWxsIG9uIGkzODYKaG9zdHMuIFRoZSBob3N0IGFuZCB0YXJnZXQga2VybmVscyBw cm9iYWJseSBuZWVkIHR1bmluZyBmb3IgdGhpcyB0byB3b3JrCnByb3Blcmx5IC0gZGlzYWJsZSB2 bWEgcmFuZG9taXphdGlvbiBpbiAvcHJvYy9zeXMva2VybmVsL3JhbmRvbWl6ZV92YV9zcGFjZQpU aGUgc2g0IHRhcmdldCBtYXkgbmVlZCBkaXNhYmxlZCB2ZHNvIGFzIHdlbGwgaW4gL3Byb2Mvc3lz L3ZtL3Zkc29fZW5hYmxlZAoKU2lnbmVkLW9mZi1ieTogTWFnbnVzIERhbW0gPGRhbW1AaWdlbC5j by5qcD4KCi0tLSAwMDAxL2VsZi5oCisrKyB3b3JrL2VsZi5oCTIwMDctMDYtMDcgMTI6MDA6NDMu MDAwMDAwMDAwICswOTAwCkBAIC0yMDQsNiArMjA0LDcgQEAgdHlwZWRlZiBpbnQ2NF90ICBFbGY2 NF9TeHdvcmQ7CiAjZGVmaW5lIEFUX1BMQVRGT1JNIDE1ICAvKiBzdHJpbmcgaWRlbnRpZnlpbmcg Q1BVIGZvciBvcHRpbWl6YXRpb25zICovCiAjZGVmaW5lIEFUX0hXQ0FQICAxNiAgICAvKiBhcmNo IGRlcGVuZGVudCBoaW50cyBhdCBDUFUgY2FwYWJpbGl0aWVzICovCiAjZGVmaW5lIEFUX0NMS1RD SyAxNwkvKiBmcmVxdWVuY3kgYXQgd2hpY2ggdGltZXMoKSBpbmNyZW1lbnRzICovCisjZGVmaW5l IEFUX1NFQ1VSRSAyMyAgICAvKiBzZWN1cmUgbW9kZSBib29sZWFuICovCiAKIHR5cGVkZWYgc3Ry dWN0IGR5bmFtaWN7CiAgIEVsZjMyX1N3b3JkIGRfdGFnOwotLS0gMDAwOC9saW51eC11c2VyL2Vs ZmxvYWQuYworKysgd29yay9saW51eC11c2VyL2VsZmxvYWQuYwkyMDA3LTA2LTA3IDE1OjI1OjM0 LjAwMDAwMDAwMCArMDkwMApAQCAtMzMxLDYgKzMzMSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBp bml0X3RocmVhZChzdHJ1Y3QgdGEKICNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKICNkZWZpbmUg RUxGX0VYRUNfUEFHRVNJWkUgICAgICAgIDQwOTYKIAorI2RlZmluZSBFTEZfSFdDQVAgMHgyMQor I2RlZmluZSBFTEZfQ0xLVENLIDB4NjQKKwogI2VuZGlmCiAKICNpZmRlZiBUQVJHRVRfTTY4SwpA QCAtMzkxLDYgKzM5NCwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF90aHJlYWQoc3RydWN0 IHRhCiAjZGVmaW5lIEVMRl9IV0NBUCAwCiAjZW5kaWYKIAorI2lmbmRlZiBFTEZfQ0xLVENLCisj ZGVmaW5lIEVMRl9DTEtUQ0sgMAorI2VuZGlmCisKICNpbmNsdWRlICJlbGYuaCIKIAogc3RydWN0 IGV4ZWMKQEAgLTQ0Niw3ICs0NTMsNyBAQCBzdHJ1Y3QgZXhlYwogI2RlZmluZSBJTlRFUlBSRVRF Ul9BT1VUIDEKICNkZWZpbmUgSU5URVJQUkVURVJfRUxGIDIKIAotI2RlZmluZSBETElORk9fSVRF TVMgMTIKKyNkZWZpbmUgRExJTkZPX0lURU1TIDEzCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1j cHlfZnJvbWZzKHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHVuc2lnbmVkIGxvbmcgbikK IHsKQEAgLTU3Nyw3ICs1ODQsMTEgQEAgdW5zaWduZWQgbG9uZyBzZXR1cF9hcmdfcGFnZXModGFy Z2V0X3VsbwogICAgIHNpemUgPSB4ODZfc3RhY2tfc2l6ZTsKICAgICBpZiAoc2l6ZSA8IE1BWF9B UkdfUEFHRVMqVEFSR0VUX1BBR0VfU0laRSkKICAgICAgICAgc2l6ZSA9IE1BWF9BUkdfUEFHRVMq VEFSR0VUX1BBR0VfU0laRTsKKyNpZmRlZiBUQVJHRVRfU0g0IC8qIHNoNDogdXNlIHNhbWUgYmFz ZSBhZGRyZXNzIGFzIHJlYWwga2VybmVsICovCisgICAgZXJyb3IgPSB0YXJnZXRfbW1hcCgweDdj MDAwMDAwIC0gc2l6ZSwKKyNlbHNlCiAgICAgZXJyb3IgPSB0YXJnZXRfbW1hcCgwLCAKKyNlbmRp ZgogICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSArIHFlbXVfaG9zdF9wYWdlX3NpemUsCiAg ICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAogICAgICAgICAg ICAgICAgICAgICAgICAgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTllNT1VTLApAQCAtNzAwLDIzICs3 MTEsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVfZWxmX3RhYmxlcyh0CiAgICAgICAg ICAgICBzcCAtPSBuOyB0cHV0bChzcCwgdmFsKTsgXAogICAgICAgICAgICAgc3AgLT0gbjsgdHB1 dGwoc3AsIGlkKTsgXAogICAgICAgICAgIH0gd2hpbGUoMCkKLSAgICAgICAgTkVXX0FVWF9FTlQg KEFUX05VTEwsIDApOwogCi0gICAgICAgIC8qIFRoZXJlIG11c3QgYmUgZXhhY3RseSBETElORk9f SVRFTVMgZW50cmllcyBoZXJlLiAgKi8KLSAgICAgICAgTkVXX0FVWF9FTlQoQVRfUEhEUiwgKHRh cmdldF91bG9uZykobG9hZF9hZGRyICsgZXhlYy0+ZV9waG9mZikpOwotICAgICAgICBORVdfQVVY X0VOVChBVF9QSEVOVCwgKHRhcmdldF91bG9uZykoc2l6ZW9mIChzdHJ1Y3QgZWxmX3BoZHIpKSk7 Ci0gICAgICAgIE5FV19BVVhfRU5UKEFUX1BITlVNLCAodGFyZ2V0X3Vsb25nKShleGVjLT5lX3Bo bnVtKSk7Ci0gICAgICAgIE5FV19BVVhfRU5UKEFUX1BBR0VTWiwgKHRhcmdldF91bG9uZykoVEFS R0VUX1BBR0VfU0laRSkpOwotICAgICAgICBORVdfQVVYX0VOVChBVF9CQVNFLCAodGFyZ2V0X3Vs b25nKShpbnRlcnBfbG9hZF9hZGRyKSk7Ci0gICAgICAgIE5FV19BVVhfRU5UKEFUX0ZMQUdTLCAo dGFyZ2V0X3Vsb25nKTApOwotICAgICAgICBORVdfQVVYX0VOVChBVF9FTlRSWSwgbG9hZF9iaWFz ICsgZXhlYy0+ZV9lbnRyeSk7Ci0gICAgICAgIE5FV19BVVhfRU5UKEFUX1VJRCwgKHRhcmdldF91 bG9uZykgZ2V0dWlkKCkpOwotICAgICAgICBORVdfQVVYX0VOVChBVF9FVUlELCAodGFyZ2V0X3Vs b25nKSBnZXRldWlkKCkpOwotICAgICAgICBORVdfQVVYX0VOVChBVF9HSUQsICh0YXJnZXRfdWxv bmcpIGdldGdpZCgpKTsKLSAgICAgICAgTkVXX0FVWF9FTlQoQVRfRUdJRCwgKHRhcmdldF91bG9u ZykgZ2V0ZWdpZCgpKTsKLSAgICAgICAgTkVXX0FVWF9FTlQoQVRfSFdDQVAsICh0YXJnZXRfdWxv bmcpIEVMRl9IV0NBUCk7Ci0gICAgICAgIGlmIChrX3BsYXRmb3JtKQotICAgICAgICAgICAgTkVX X0FVWF9FTlQoQVRfUExBVEZPUk0sIHVfcGxhdGZvcm0pOwogI2lmZGVmIEFSQ0hfRExJTkZPCiAJ LyogCiAJICogQVJDSF9ETElORk8gbXVzdCBjb21lIGxhc3Qgc28gcGxhdGZvcm0gc3BlY2lmaWMg Y29kZSBjYW4gZW5mb3JjZQpAQCAtNzI0LDYgKzcxOSwyNiBAQCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBjcmVhdGVfZWxmX3RhYmxlcyh0CiAJICovCiAgICAgICAgIEFSQ0hfRExJTkZPOwogI2VuZGlm CisKKyAgICAgICAgLyogVGhlcmUgbXVzdCBiZSBleGFjdGx5IERMSU5GT19JVEVNUyBlbnRyaWVz IGhlcmUuICAqLworCisgICAgICAgIGlmIChrX3BsYXRmb3JtKQorICAgICAgICAgICAgTkVXX0FV WF9FTlQoQVRfUExBVEZPUk0sIHVfcGxhdGZvcm0pOworICAgICAgICBORVdfQVVYX0VOVChBVF9T RUNVUkUsICh0YXJnZXRfdWxvbmcpIDApOworICAgICAgICBORVdfQVVYX0VOVChBVF9FR0lELCAo dGFyZ2V0X3Vsb25nKSAwIC8qIGdldGVnaWQoKSAqLyk7CisgICAgICAgIE5FV19BVVhfRU5UKEFU X0dJRCwgKHRhcmdldF91bG9uZykgMCAvKiBnZXRnaWQoKSAqLyk7CisgICAgICAgIE5FV19BVVhf RU5UKEFUX0VVSUQsICh0YXJnZXRfdWxvbmcpIDAgLyogZ2V0ZXVpZCgpICovKTsKKyAgICAgICAg TkVXX0FVWF9FTlQoQVRfVUlELCAodGFyZ2V0X3Vsb25nKSAwLyogZ2V0dWlkKCkgKi8pOworICAg ICAgICBORVdfQVVYX0VOVChBVF9FTlRSWSwgbG9hZF9iaWFzICsgZXhlYy0+ZV9lbnRyeSk7Cisg ICAgICAgIE5FV19BVVhfRU5UKEFUX0ZMQUdTLCAodGFyZ2V0X3Vsb25nKTApOworICAgICAgICBO RVdfQVVYX0VOVChBVF9CQVNFLCAodGFyZ2V0X3Vsb25nKShpbnRlcnBfbG9hZF9hZGRyKSk7Cisg ICAgICAgIE5FV19BVVhfRU5UKEFUX1BITlVNLCAodGFyZ2V0X3Vsb25nKShleGVjLT5lX3BobnVt KSk7CisgICAgICAgIE5FV19BVVhfRU5UKEFUX1BIRU5ULCAodGFyZ2V0X3Vsb25nKShzaXplb2Yg KHN0cnVjdCBlbGZfcGhkcikpKTsKKyAgICAgICAgTkVXX0FVWF9FTlQoQVRfUEhEUiwgKHRhcmdl dF91bG9uZykobG9hZF9hZGRyICsgZXhlYy0+ZV9waG9mZikpOworICAgICAgICBORVdfQVVYX0VO VChBVF9DTEtUQ0ssICh0YXJnZXRfdWxvbmcpIEVMRl9DTEtUQ0spOworICAgICAgICBORVdfQVVY X0VOVChBVF9QQUdFU1osICh0YXJnZXRfdWxvbmcpKFRBUkdFVF9QQUdFX1NJWkUpKTsKKyAgICAg ICAgTkVXX0FVWF9FTlQoQVRfSFdDQVAsICh0YXJnZXRfdWxvbmcpIEVMRl9IV0NBUCk7CisKICN1 bmRlZiBORVdfQVVYX0VOVAogCiAgICAgICAgIHNwID0gbG9hZGVyX2J1aWxkX2FyZ3B0cihlbnZj LCBhcmdjLCBzcCwgcCwgIWliY3MpOwo= ------=_Part_84008_1940740.1183524243813 Content-Type: application/octet-stream; name=gdb-script Content-Transfer-Encoding: base64 X-Attachment-Id: f_f3pbjtli Content-Disposition: attachment; filename="gdb-script" c2V0IGFyY2hpdGVjdHVyZSBzaDQKdGFyZ2V0IHJlbW90ZSBsb2NhbGhvc3Q6MTIzNAp4LzQwOTZi eCAoJHIxNSAmIH4weGZmZikKd2hpbGUgKDE+MCkKIGVjaG8gYWxsLXJlZ2lzdGVyczpcbgogaW5m byBhbGwtcmVnaXN0ZXJzCiBlY2hvIGN1cnJlbnQgaW5zdHJ1Y3Rpb246CiB4L2kgJHBjCiBzdGVw aQplbmQKcXVpdA== ------=_Part_84008_1940740.1183524243813 Content-Type: application/octet-stream; name=gdb-script-target Content-Transfer-Encoding: base64 X-Attachment-Id: f_f3pbkvzu Content-Disposition: attachment; filename="gdb-script-target" c2V0IGFyY2hpdGVjdHVyZSBzaDQKdGFyZ2V0IHJlbW90ZSAxOTIuMTY4Ljk5LjU6MTIzNAojdGhp cyByZWdpc3RlciBzZXR0aW5nIHJlcXVpcmVzIGdkYi02LjQgd2l0aCBTVCBwYXRjaGVzIC0gdmFu aWxsYSBnZGItNi42IGRvZXMgbm90IHdvcmsKc2V0ICRtYWNoPTAKc2V0ICRtYWNsPTAKc2V0ICRn YnI9MAp4LzQwOTZieCAoJHIxNSAmIH4weGZmZikKd2hpbGUgKDE+MCkKIGVjaG8gYWxsLXJlZ2lz dGVyczpcbgogaW5mbyBhbGwtcmVnaXN0ZXJzCiBlY2hvIGN1cnJlbnQgaW5zdHJ1Y3Rpb246CiB4 L2kgJHBjCiBzdGVwaQplbmQKcXVpdA== ------=_Part_84008_1940740.1183524243813--