valgrind (fwd)

Jakub Bogusz qboosh w pld-linux.org
Sob, 7 Sie 2004, 22:57:10 CEST


On Sat, Aug 07, 2004 at 09:50:41PM +0200, Andrzej Krzysztofowicz wrote:
> Mysle, ze to powinno trafic tutaj.
> 
> Bartosz Taudul wrote:
> > On Sat, Aug 07, 2004 at 09:31:47PM +0200, Andrzej Krzysztofowicz wrote:
> > > > valgrind-calltree został zastąpiony przez valgrind-callgrind, zobacz
> > > Ale sie nie buduje. Wiec obecny valgrind z ready jest do luftu.
> > Nie valgrind jest do luftu, tylko coś na builderach, co blokuje
> > poprawne uruchomienie się valgrinda.
> > 
> > > > pld-devel, coś jest zepsute na builderach.
> > > No wlasnie, co? Buildery instaluja tylko pakiety z ac/ready.
> > A to to już tylko osoby mające bezpośredni dostęp do builderów mogą
> > stwierdzić.
> > 
> > > Zakladam, ze ty wiesz lepiej o co chodzi z ta "zbyt nowa wersja" niz
> > > averne...
> > O nic nie chodzi. Budowany jest plugin do valgrinda sprawdzający czy
> > valgrind jest odpowiednio nowy:
> > 
> > #include "vg_skin.h"
> > int main() { return (VG_CORE_INTERFACE_MAJOR_VERSION > 5) ? 1:0; }

To nie to, tu nie miałoby się co wywalić - zwykłe porównanie bez
wywoływania żadnych funkcji.
Chodzi o wcześniejsze `valgrind --version`.

> > Jak widać wcześniej w logu, valgrind wywala się na ustawieniach
> > buildera, zwraca więc pewnie błąd, który jest niepoprawnie
> > interpretowany w tym miejscu jako kod powrotu z plugina. I configure
> > twierdzi, że valgrind jest za stary.
> 
> ExecShield ?

Nie. Wtedy akurat na ac-i586 by się wykładał ;)
Coś z limitami (konkretnie ulimit -v).
Na ac-i386 z shella przechodzi - pewnie to, co kiedyś wyszło z limitami
przy exec z poziomu pythona - że ustawia soft na odczytaną wartość hard,
ale pam_limit z Ra źle działa na jądrach 2.4+ (inna wartość unlimited).
ac-athlon - pewnie to samo co ac-i386 (też Ra).
Na ac-i686 jest ustawiony ulimit -v. A właściwie wszystkie limity na 2GB
(starą wartość unlimited?), nie wiem skąd.

Tymczasem valgrind robi jakieś dziwne kombinacje z mmapem i przy
ustawionym ulimit -v poniżej 3GB się wykłada:

[builder2 w cna builder2]$ ulimit -v 3000000
[builder2 w cna builder2]$ valgrind --version
valgrind-2.1.2
[builder2 w cna builder2]$ ulimit -v 2400000
[builder2 w cna builder2]$ valgrind --version
valgrind: mmap(0x80e7000, -1477341184) failed during startup.
valgrind: is there a hard virtual memory limit set?

nawet źle to wypisuje, strace działa lepiej:
mmap2(0x80e7000, 2817626112, PROT_NONE, MAP_PRIVATE|MAP_FIXED, 3, 0) = -1 ENOMEM (Cannot allocate memory)

Po co mu aż tyle? Nie chce mi się teraz do źródeł zaglądać.


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/




Więcej informacji o liście dyskusyjnej pld-devel-pl