/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
GDB opfører sig skørt med mit C++-p
Fra : Steffen Fischer


Dato : 11-08-03 00:53

Hej alle

Jeg har i forbindelse med et c++-projekt leget lidt med GVD (grafisk
front-end til GDB), men fandt ud at at jeg i en enkelt fil ikke kunne
indsætte fungerende breakpoints. Da jeg heller ikke kunne gøre det i GDB
fra konsollen, har jeg skåret kraftigt ned på koden, og stadig beholde
problemet. Resultatet er blevet:

<start kode>

=== test.cpp: ====

#include "reader.h"

int main(int argc, char *argv[]) {
ReaderTing map_reader = ReaderTing();
}

Reader::Reader() {
int i = 0;
i++;
}

=== reader.h: ====

#ifndef READER_H
#define READER_H

class Reader {
public:
Reader();
};

#endif

<slut kode>

Programmet compiles med: g++ -g -Wall test.cpp

Efterfølgende startes GDB med: gdb a.out

Hvis jeg nu eks. vil lave et breakpoint i linie 8 (int i = 0;), vil jeg
så skrive "b 8" i GDB-promten (kald . Hvis jeg herefter kører programmet
med "r" breakes der ikke.

Jeg kan godt få den til at stoppe ved eks. "b Reader::Reader()", men det
er jo ikke helt nok. Jeg har også forsøgt at finde på et lidt mindre
almindelige navn end "reader", men uden held.

Hvad er det jeg gør galt? For jeg kan ikke umiddelbart indse det.
Desuden kan jeg underligt nok ikke længere se noget af ovenstående kode
i GVD, hvilket naturligvis også er et problem.

Jeg kører med debian unstable (men er også tilstede på min ældre debian
testing). Versionerne af de omtalte programmer:
g++ (GCC) 3.3.1 (Debian)
GNU gdb 5.3.90_2003-08-01-cvs-debian
GVD version 1.2.6 (20020522)

Håber at nogen kan hjælpe, for det er nemlig lidt træls :)

/Steffen


 
 
Michael Wojciechowsk~ (12-08-2003)
Kommentar
Fra : Michael Wojciechowsk~


Dato : 12-08-03 09:03

On Mon, 11 Aug 2003 01:53:05 +0200, Steffen Fischer
<steffen_fischer@ofir.dk> wrote:

> Programmet compiles med: g++ -g -Wall test.cpp

Hjælper det, hvis du opretter reader.cpp hvori du placerer din
implementation?
Jeg gør det normalt, og har ikke lagt mærke til at gvd/gdb har nægtet
at rette sig efter mine breakpoints.

> Jeg kører med debian unstable (men er også tilstede på min ældre
> debian testing). Versionerne af de omtalte programmer:
> g++ (GCC) 3.3.1 (Debian)
> GNU gdb 5.3.90_2003-08-01-cvs-debian
> GVD version 1.2.6 (20020522)

Jeg bruger både stable gvd og den fra testing.

--
Michael Wojciechowski

With every light is born a shadow.

Steffen Fischer (12-08-2003)
Kommentar
Fra : Steffen Fischer


Dato : 12-08-03 11:02

>
> Hjælper det, hvis du opretter reader.cpp hvori du placerer din
> implementation?

Nej, det gør det desværre ikke.

> Jeg gør det normalt, og har ikke lagt mærke til at gvd/gdb har nægtet
> at rette sig efter mine breakpoints.
>

Jeps, det plejer jeg også, men i vedlagte kode har jeg forsøgt at skære
så meget som muligt fra, samtidig med at problemet fortsat er der.

Jeg synes altså at det er meget skørt :-/.

En (tredje) skør ting er hvis jeg sætter breakpoints på følgende to måder:

(gdb) b 7
Breakpoint 1 at 0x80483f6: file tester.cpp, line 7.

(gdb) b ReaderTing::ReaderTing()
Breakpoint 2 at 0x8048410: file tester.cpp, line 7.

Angiveligt bliver de to breakpoints sat i samme linie, men adresserne er
forskellige... Har det nogen betydning? Det skal lige nævnes at
programmet stopper ved 2, men ikke 1.

/Steffen


Michael Wojciechowsk~ (12-08-2003)
Kommentar
Fra : Michael Wojciechowsk~


Dato : 12-08-03 12:00

On Tue, 12 Aug 2003 12:02:07 +0200, Steffen Fischer
<steffen_fischer@ofir.dk> wrote:

> Jeg synes altså at det er meget skørt :-/.

Du kunne spørge i dk.edb.programmering.c. :)

--
Michael Wojciechowski

With every light is born a shadow.


Steffen Fischer (12-08-2003)
Kommentar
Fra : Steffen Fischer


Dato : 12-08-03 22:18

Michael Wojciechowski wrote:
> Du kunne spørge i dk.edb.programmering.c. :)
>

Hehe, det er hermed gjort. Så håber jeg, at der er nogle kloge hoveder
derovre... dermed ikke sagt at der ikke er det her .

/Steffen


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408939
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste