|
| Øh - allokering - linking ??? Fra : Soren Kuula |
Dato : 18-09-04 01:34 |
|
Hej
Jeg har et program som er linket sammen af en del objektfiler. Fint nok
med det ...
I den ene C fil (x) er der en (static) variabel, som jeg kun initierer
en enkelt gang, men som nogen gange uforklarligt ændrer værdi (GTK
udspyr en masse warnings om at variablen, som peger på en widget, er
u-castbar, eller NULL). Jeg antager at der i en af de andre C-filer er
noget snadderkode som f. eks. skriver ud over enden på et statisk
allokeret (hedder det sådan ?) array eller på en anden måde er inde og
gramse i x's variabler.
Når jeg skifter x ud med en anden implementation af samme headers, går
det også ned en gang imellem - med andre symptomer: Nu er det bare noget
andet som er offer for den rådne kode.
Hvordan pokker kommer jeg i gang med at finde synderen ? Kan jeg spørge
linkeren i hvilen rækkefølge den allokerer dataplads til de forskellige
objekter ? Så kunne jeg nok lede i den lige "før" eller "efter" x. Der
er MANGE objekter, nogle af dem lidt langhårede; håbløst at kigge al
kode igennem.
Andre råd ? Er det værd at sætte sig ind i Electric Fence ? Det er ikke
sikkert at det er et array-problem...
MVH
Søren
| |
Soren Kuula (18-09-2004)
| Kommentar Fra : Soren Kuula |
Dato : 18-09-04 01:37 |
|
Soren Kuula wrote:
> Hej
>
> Jeg har et program som er linket sammen af en del objektfiler. Fint nok
> med det ...
Nå ja, det er gcc, og gcc -dumpversion --> 3.3.3
RedHat Core 2.
MVH
Søren
| |
Mogens Hansen (19-09-2004)
| Kommentar Fra : Mogens Hansen |
Dato : 19-09-04 06:15 |
|
"Soren Kuula" <dongfang@remove.bitplanet.net> wrote in message
news:QoL2d.49495$Vf.2432846@news000.worldonline.dk...
> Soren Kuula wrote:
> > Hej
> >
> > Jeg har et program som er linket sammen af en del objektfiler. Fint nok
> > med det ...
>
> Nå ja, det er gcc, og gcc -dumpversion --> 3.3.3
Prøv et kigge på Valgrind ( http://valgrind.kde.org/), den burde kune hjælpe
dig med at finde sådanne problemer.
Venlig hilsen
Mogens Hansen
| |
Anders Melchiorsen (18-09-2004)
| Kommentar Fra : Anders Melchiorsen |
Dato : 18-09-04 10:00 |
|
Soren Kuula <dongfang@remove.bitplanet.net> wrote:
> I den ene C fil (x) er der en (static) variabel, som jeg kun
> initierer en enkelt gang, men som nogen gange uforklarligt ændrer
> værdi
Du skriver, at du bruger gcc-miljøet. Så vil jeg mene at det er let at
finde ud af, hvornår problemet opstår ved at bruge kommandoen "watch"
fra gdb.
Anders.
--
Min adresse er gyldig i en uge.
Derefter skal (kun) delen '.dJJJ-YY' fjernes.
| |
Soren Kuula (19-09-2004)
| Kommentar Fra : Soren Kuula |
Dato : 19-09-04 17:00 |
|
Anders Melchiorsen wrote:
> Du skriver, at du bruger gcc-miljøet. Så vil jeg mene at det er let at
> finde ud af, hvornår problemet opstår ved at bruge kommandoen "watch"
> fra gdb.
Hej,
Jeg glemte også at sige -- skidtet fejler aldrig, aldrig under GDB :(
| |
|
|