|
| Et noget pudsigt coredump Fra : Anders Wegge Keller |
Dato : 05-11-09 13:00 |
|
Jeg prøver på at finde en forklaring på hvad det er der er gået galt
her:
....
604 if (list->chutes[pr->chute].activelu!=NULL) {
605 if (!(list->chutes[pr->chute].activelu->emergency_mode)) {
....
Eksekveringen stopper i linie 605 med en SIGSEGV, så jeg har checekt
mine pointere, og fundet frem til at list->chutes[pr->chute].activelu
rent faktisk er NULL. Så det er sådan set forventligt at jeg får en
fejl der. Det harmonerer bare ikke helt med det check der er i linien
før, så hvad er det lige der går galt?
Godtnok er SCO's implementation af cc ikke altid den skarpeste kniv i
skuffen, men alligevel ..
--
/Wegge
Leder efter redundant peering af dk.*,linux.debian.*
| |
Mogens Hansen (05-11-2009)
| Kommentar Fra : Mogens Hansen |
Dato : 05-11-09 13:58 |
|
"Anders Wegge Keller" <wegge@wegge.dk> wrote in message
news:87y6mltc4m.fsf@huddi.jernurt.dk...
>
> Jeg prøver på at finde en forklaring på hvad det er der er gået galt
> her:
>
> ...
> 604 if (list->chutes[pr->chute].activelu!=NULL) {
> 605 if (!(list->chutes[pr->chute].activelu->emergency_mode)) {
> ...
>
> Eksekveringen stopper i linie 605 med en SIGSEGV, så jeg har checekt
> mine pointere, og fundet frem til at list->chutes[pr->chute].activelu
> rent faktisk er NULL. Så det er sådan set forventligt at jeg får en
> fejl der. Det harmonerer bare ikke helt med det check der er i linien
> før, så hvad er det lige der går galt?
Er du sikker på at det er linie 605 og ikke 604 der crasher ?
Er du sikker på at pointerne "list", "pr" og "activelu" er gyldige ? Altså
at de peger ind i en blok der er allokeret (og ikke frigivet).
Er du sikker på at "pr->chute" ikke indekserer uden for "list->chutes"
længde ?
>
> Godtnok er SCO's implementation af cc ikke altid den skarpeste kniv i
> skuffen, men alligevel ..
Ja - en fejl i compileren er altid en mulighed, og det forekommer også. Men
jeg syntes som regel at fejlen findes i ens eget program...
--
Venlig hilsen
Mogens Hansen
| |
Bertel Lund Hansen (05-11-2009)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-11-09 14:03 |
|
Anders Wegge Keller skrev:
> Jeg prøver på at finde en forklaring på hvad det er der er gået galt
> her:
> 604 if (list->chutes[pr->chute].activelu!=NULL) {
> 605 if (!(list->chutes[pr->chute].activelu->emergency_mode)) {
605 vil reagere positivt på en egentlig værdi som er tallet 0. Er
det en mulighed?
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Anders Wegge Keller (05-11-2009)
| Kommentar Fra : Anders Wegge Keller |
Dato : 05-11-09 14:34 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> writes:
> "Anders Wegge Keller" <wegge@wegge.dk> wrote in message
...
>> Eksekveringen stopper i linie 605 med en SIGSEGV, så jeg har
>> checekt mine pointere, og fundet frem til at
>> list->chutes[pr->chute].activelu rent faktisk er NULL. SÃ¥ det er
>> sådan set forventligt at jeg får en fejl der. Det harmonerer bare
>> ikke helt med det check der er i linien før, så hvad er det lige
>> der går galt?
>
> Er du sikker på at det er linie 605 og ikke 604 der crasher ?
dbxtra hævder hårdnakket at det er 605, men efter yderligere klogen
rundt i det, er jeg overbevist om at det er i 604 vi har balladen.
> Er du sikker på at pointerne "list", "pr" og "activelu" er gyldige ?
> Altså at de peger ind i en blok der er allokeret (og ikke frigivet).
> Er du sikker på at "pr->chute" ikke indekserer uden for
> "list->chutes" længde ?
Jeg har isoleret det til at pr er NULL. Men dbxtra er så venlig at
den glad og gerne fortæller at "pr->chute" er 56, hvilket iøvrigt er
en værdi der er indenfor det gyldige range.
>> Godtnok er SCO's implementation af cc ikke altid den skarpeste kniv i
>> skuffen, men alligevel ..
> Ja - en fejl i compileren er altid en mulighed, og det forekommer
> også. Men jeg syntes som regel at fejlen findes i ens eget
> program...
Ja, det er en 12 år gammel fejl, der muligvis har vist sig en gang
eller to før, sådan som jeg læser de gamle sager på projektet. Men jeg
vil nu stadig pege fingre ad debuggeren, og glæde mig over at vi er
ved at porte os væk fra SCO.
--
/Wegge
Leder efter redundant peering af dk.*,linux.debian.*
| |
Anders Wegge Keller (05-11-2009)
| Kommentar Fra : Anders Wegge Keller |
Dato : 05-11-09 14:35 |
|
Bertel Lund Hansen <splitteminebramsejl@lundhansen.dk> writes:
> Anders Wegge Keller skrev:
>
>> Jeg prøver på at finde en forklaring på hvad det er der er gået galt
>> her:
>
>> 604 if (list->chutes[pr->chute].activelu!=NULL) {
>> 605 if (!(list->chutes[pr->chute].activelu->emergency_mode)) {
>
> 605 vil reagere positivt på en egentlig værdi som er tallet 0. Er
> det en mulighed?
Det ville ikke give et coredump der. Se i øvrigt mit svar til Mogens.
--
/Wegge
Leder efter redundant peering af dk.*,linux.debian.*
| |
|
|