18. august 2003 - 08:47Der er
9 kommentarer og 1 løsning
Address out of bounds
(gdb) where #0 0x280b1975 in ?? () #1 0x804babd in login (nick=0x5 <Address 0x5 out of bounds>, pass=0x8075ec5 "tis", fd=2) at test.c:731 #2 0x804b946 in login (nick=0x8075ec5 "tis", pass=0x5 <Address 0x5 out of bounds>, fd=0) at test.c:724 #3 0x804a28c in addslashes (a=0x5 <Address 0x5 out of bounds>) at test.c:388 #4 0x804c55a in check_nick (newnick=0x1 <Address 0x1 out of bounds>, fd=-1077937112) at test.c:976 #5 0x80494be in fputs ()
nogen der kan sige mig hvad det betyder? det har vel noget at gøre med det "Address out of bounds", og hvad kan jeg gøre for at forhindre mit program i at crashe på den måde?
Hvis det ikke hjælper så vis lige koden for de funktioner der indeholder linie 724, 731 og 976 (hele filen er nok for meget). Har du slået alle warnings til og set efter om der er nogen fejl der hedder noget med "use before initializing" eller lignende.
#2 pass er nok uinitialiseret #3 a er nok uinitialiseret #4 fd er nok uinitialiseret #0 og #5 er nok afledte af dette, jeg vil gætte på at du får brugt nogle af dine rutiner før du får initialiseret data, hvis det er C++ så lav en constructor der udfylder alle data felter i user, fx. nick = "UNINITIALIZED".
Prøv at udskrive værdierne af fd, user[fd].nick lige før de bruges i de ovennævnte linier.
if (fd < 0 || fd > MAXFDDUBRUGERNU)) printf("fd har tvivlsom værdi = %d\n", fd); if (user[fd].nick < 1024) // hvis adressen er mindre en 1024??? peger den ned i systemområdet printf("nick har tvivlsom værdi = %p\n", nick); // samme med pass.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.