From: Tilman Sauerbeck Date: 2005-09-08T04:13:29+09:00 Subject: [PATCH] Valgrind support --Multipart=_Wed__7_Sep_2005_21_13_25_+0200_Cn8ITd_LVQgebFK8 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi all, one way to be able to valgrind ruby applications is to use a suppression file, which tells Valgrind to ignore all the errors it thinks it found in Ruby. Another way is to use Valgrind's user requests, to tell it what memory areas should be considered to be initialized etc. "SlowByte" on #ruby-talk proposed this approach, and I implemented it. I attached the patch. This seems to work very well, maybe too well - it might hide real bugs. It's way less painful than suppression files, but requires you to recompile Ruby. Please comment. If you think it's useful, maybe it can be merged? Of course ./configure should check whether Valgrind is available + some #ifdef magic for the macros etc. Patch made against 1.8.3-preview1. Regards, Tilman -- learn to quote: http://www.netmeister.org/news/learn2quote.html --Multipart=_Wed__7_Sep_2005_21_13_25_+0200_Cn8ITd_LVQgebFK8 Content-Type: application/octet-stream; name="ruby_valgrind.diff" Content-Disposition: attachment; filename="ruby_valgrind.diff" Content-Transfer-Encoding: base64 ZGlmZiAtYXVyIHJ1YnktMS44LjMub3JpZy9nYy5jIHJ1YnktMS44LjMvZ2MuYwotLS0gcnVieS0x LjguMy5vcmlnL2djLmMJMjAwNS0wMS0yMCAxMDozNDozNi4wMDAwMDAwMDAgKzAxMDAKKysrIHJ1 YnktMS44LjMvZ2MuYwkyMDA1LTA4LTMxIDIzOjM0OjQwLjAwMDAwMDAwMCArMDIwMApAQCAtMjEs NiArMjEsOCBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c2V0am1wLmg+CiAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSAiL3Vzci9pbmNsdWRlL3ZhbGdyaW5kL3ZhbGdy aW5kLmgiCisjaW5jbHVkZSAiL3Vzci9pbmNsdWRlL3ZhbGdyaW5kL21lbWNoZWNrLmgiCiAKICNp ZmRlZiBIQVZFX1NZU19USU1FX0gKICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtNjIwLDYgKzYy Miw5IEBACiAgICAgcmVnaXN0ZXIgbG9uZyBuOwogewogICAgIFZBTFVFIHY7CisKKyAgICBWQUxH UklORF9NQUtFX1JFQURBQkxFICh4LCBzaXplb2YgKFZBTFVFKSAqIG4pOworCiAgICAgd2hpbGUg KG4tLSkgewogICAgICAgICB2ID0gKng7CiAJaWYgKGlzX3BvaW50ZXJfdG9faGVhcCgodm9pZCAq KXYpKSB7CkBAIC03MTAsNyArNzE1LDEyIEBACiB7CiAgICAgcmVnaXN0ZXIgUlZBTFVFICpvYmo7 CiAKKyAgICBWQUxHUklORF9NQUtFX1JFQURBQkxFICgmcHRyLCBzaXplb2YgKHB0cikpOworCiAg ICAgb2JqID0gUkFOWShwdHIpOworCisgICAgVkFMR1JJTkRfTUFLRV9SRUFEQUJMRSAob2JqLCBz aXplb2YgKFJWQUxVRSkpOworCiAgICAgaWYgKHJiX3NwZWNpYWxfY29uc3RfcChwdHIpKSByZXR1 cm47IC8qIHNwZWNpYWwgY29uc3Qgbm90IG1hcmtlZCAqLwogICAgIGlmIChvYmotPmFzLmJhc2lj LmZsYWdzID09IDApIHJldHVybjsgICAgICAgLyogZnJlZSBjZWxsICovCiAgICAgaWYgKG9iai0+ YXMuYmFzaWMuZmxhZ3MgJiBGTF9NQVJLKSByZXR1cm47ICAvKiBhbHJlYWR5IG1hcmtlZCAqLyAK --Multipart=_Wed__7_Sep_2005_21_13_25_+0200_Cn8ITd_LVQgebFK8--