Du bist nicht angemeldet.

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

1

24.11.2011, 22:48

gdb strcpy

Hallo,
ich hab ein Problem beim debuggen eines meiner Programme mit gdb. Man kann ja mit break Breakpoints setzten.
mein code sieht so aus:

C/C++-Quelltext

1
2
#include <stdio.h>#include <string.h>
int main() {    char str[20];        strcpy(str, "Hello World");    printf(str);}


so wenn ich jetzt break strcpy eingebe, dann macht der da auch schon einen breakpoint hin. Aber er übergeht ihn wenn ich den code starte. Wisst ihr wieso?
LG,
meschi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »meschi« (20.03.2015, 14:46)


Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

2

25.11.2011, 16:04

Eig. müsstest du bei dem Code oben eine Warnung bekommen, weil der return-Wert fehlt o.O
Außerdem ist es doch logisch, dass wenn du beim Breakpoint continue machst, er nicht nochmal anhält, weil er dann ja nicht nochmal an die Stelle geht..

PS: Das ist wieder so eine Stelle, wo Zeilenumbrüche im Code nicht vom Forum nicht dargestellt werden...
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

3

25.11.2011, 18:40

Liegt bestimmt net am Forum, sondern an den Zeilenumbrüchen :D kp...

Ich dachte, man muss bei der main Methode nichts returnen?
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

4

25.11.2011, 18:43

PS: Das ist wieder so eine Stelle, wo Zeilenumbrüche im Code nicht vom Forum nicht dargestellt werden...

Bei mir funktioniert das immer und bei allen anderen auch. Ich denke das wird an seinem System/Browser liegen :s

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

5

25.11.2011, 18:57

Naja, das Thema sollten wir woanders klären ;)

@Erik
Stimmt hast Recht, habs grad nochmal nachgeschlagen, sry wegen des Fehl-Alarms :P
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Drakor

Fortgeschrittener

Beiträge: 204

Registrierungsdatum: 30.06.2011

Danksagungen: 105

  • Private Nachricht senden

6

25.11.2011, 20:57

Zitat

Ich dachte, man muss bei der main Methode nichts returnen?

Zitat

Stimmt hast Recht, habs grad nochmal nachgeschlagen, sry wegen des Fehl-Alarms :P
Öhm, schau mal oben in die Deklaration von main, der Integer muss returned werden !
Wenn du es nicht tust bekommst du eine dementsprechende Warning und die sind stets als Error zu behandeln. Also nichts mit weglassen, Patrick hatte da schon recht.


Gruß
Drakor

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

7

25.11.2011, 21:25

Ja kein Plan ich benutz kein C++, aber ich meine das damalns gelsen zu haben...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

8

26.11.2011, 10:34

@Drakor
Genau das selbe hatte ich auch gedacht, deswegen hab ichs ja auch geschrieben :D
Aber dann hab ich extra nochmal nachgeguckt:

Zitat von »Wikipedia«

Die Funktion main ist die einzige Funktion, die – obwohl sie einen Wert zurückgibt – nicht die Anweisung „return“ benötigt. Ohne die explizite Anweisung return gibt main den Wert 0 zurück.

Also du hast recht, es muss ein Integer returnt werden, aber wenn man das nicht selber macht, wird automatisch 0 zurückgegeben.
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

9

26.11.2011, 11:53

Jup, das meinte ich...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

10

04.12.2011, 16:10

also nochmal. Er hält gar nicht an dem breakpoint an.

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

11

04.12.2011, 17:43

Ich habe noch nicht wirklich einen Debugger benutzt, aber wenn du continue drückst, kommst du doch immer einen Befehl weiter, oder? Dann würde es ja auch keinen Sinn machen, da anzuhalten, obwohl man continue gedrückt hat... Kannst du nicht einfach das Programm im Debugger starten mit dem Breakpoint, aber ohne Schritt für Schritt durchzugehen? Dann müsste der ja da anhalten.... Sonst kp
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

12

04.12.2011, 18:15

Wenn man continue drückt läuft das Programm normal flüssig weiter (bis zum nächsten Breakpoint).
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

13

04.12.2011, 19:15

Achso okay...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

14

15.03.2012, 09:45

ich hab das problem immer noch... :/

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

15

15.03.2012, 09:46

kann hier eigentlich überhaupt jemand mit dem debugger umgehen? nur so aus interesse...
LG,
meschi

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

16

15.03.2012, 15:20

Habs doch schon erklärt:
Wenn man continue drückt läuft das Programm normal flüssig weiter (bis zum nächsten Breakpoint).


Es ist logisch, dass das Programm nicht nochmal anhält sondern normal weiterläuft..
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Verwendete Tags

assembler, breakpoint, C, copy, debugger, gdb, string