[C++] Een pointer die 'verdwijnt'

Pagina: 1
Acties:

  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 06-09 21:21

Aaargh!

Bow for me for I am prutser

Topicstarter
Ik heb een C++ programma, ergens in de main staat een pointer naar een object, er word in een lusje 500 keer een methode van dit object aangeroepen, zonder ook maar een enkel probleem.

10 regels later wil ik een vergelijkbaar lusje starten, op dat moment wijst de pointer niet meer naar het object maar naar 0xffffffff in de tussenliggende code word nergens dit object gebruikt of een methode aangeroepen die dit object gebruikt.

rara, hoe kan dit ? :?

Those who do not understand Unix are condemned to reinvent it, poorly.


Verwijderd

Zonder source blijft het natuurlijk raden, my best guess je hebt ergens 'n bufferoverflowtje zitten?

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
heb je wat code anders?

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
en hoe maak je de pointer aan?

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 06-09 21:21

Aaargh!

Bow for me for I am prutser

Topicstarter
Op donderdag 25 april 2002 00:12 schreef _Mo_ het volgende:
en hoe maak je de pointer aan?
Disk* myDisk = new Disk();

ik ga ff op zoek naar een buffer overflow ...

Those who do not understand Unix are condemned to reinvent it, poorly.


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 25 april 2002 00:14 schreef Aaargh! het volgende:

[..]

Disk* myDisk = new Disk();

ik ga ff op zoek naar een buffer overflow ...
kun je niet even het hele stukje code posten? 't zijn neem ik aan toch niet zo heel veel regels?

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


Verwijderd

Gebruik je VisualC? zoja gewoon een breakpoint op die var, dan breaked ie als ie van waarde changed

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 25 april 2002 00:19 schreef Yarvieh het volgende:
Gebruik je VisualC? zoja gewoon een breakpoint op die var, dan breaked ie als ie van waarde changed
watchpoint bedoel je?

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


Verwijderd

Ehh dat breakpoints schermpje wat onder alt-f9 zit beats me hoe het officieel heet :Y)

  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 06-09 21:21

Aaargh!

Bow for me for I am prutser

Topicstarter
Op donderdag 25 april 2002 00:19 schreef Yarvieh het volgende:
Gebruik je VisualC? zoja gewoon een breakpoint op die var, dan breaked ie als ie van waarde changed
Ik gebruik g++ en gdb als debugger

ff zien of ik zo'n watchdinges kan maken

Those who do not understand Unix are condemned to reinvent it, poorly.


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 25 april 2002 00:22 schreef Yarvieh het volgende:
Ehh dat breakpoints schermpje wat onder alt-f9 zit beats me hoe het officieel heet :Y)
Een breakpoint zorgt ervoor dat het programma pauseerd op een bepaalde regel, terwijl een watchpoint het programma pas onderbreekt als de variabele die in de gaten wordt gehouden van waarde veranderd...

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op donderdag 25 april 2002 00:27 schreef _Mo_ het volgende:

[..]

Een breakpoint zorgt ervoor dat het programma pauseerd op een bepaalde regel, terwijl een watchpoint het programma pas onderbreekt als de variabele die in de gaten wordt gehouden van waarde veranderd...
zeker niet, een watchpoint houd idd een waarde in de gaten, maar breakt niet als de waarde wijzigt oid. (Een watchpoint zorgt ervoor dat je de waarde kunt zien tijdens pauzes)

een data breakpoint breakt echter wel als er naar het adres van de data wordt geschreven, en heet dus ook gewoon een breakpoint :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

maak je trouwens gebruik van eigen assembler functies oid? Als je je ebp verneukt kun je namelijk ook niet meer bij de lokale functievariabelen :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 25 april 2002 00:36 schreef .oisyn het volgende:

[..]

zeker niet, een watchpoint houd idd een waarde in de gaten, maar breakt niet als de waarde wijzigt oid. (Een watchpoint zorgt ervoor dat je de waarde kunt zien tijdens pauzes)

een data breakpoint breakt echter wel als er naar het adres van de data wordt geschreven, en heet dus ook gewoon een breakpoint :)
hmm, kan het zijn dat dit per IDE verschilt? Staat me namelijk iets van bij dat Codewarrior op de Mac wel breakt... maar kan ook zijn dat deze alleen even pauzeerd en de (nieuwe) waarde in een messagebox laat zien... begin te twijfelen nu.. :?

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

ide doet er niet toe, een break point breakt, en een watchpoint watched, meer niet :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 06-09 21:21

Aaargh!

Bow for me for I am prutser

Topicstarter
Bug gevonden, foutje bij het berekenenen van een offset in een array :o , omrekenen van bits naar bytes ging een beetje verkeerd en toen werd er ineens een factor 8 meer data geschreven dan dat er ruimte was :P

Those who do not understand Unix are condemned to reinvent it, poorly.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Voortaan eerst debuggen vooraleer je je probleem op GoT plaatst, alsjeblieft. Hier wordt niemand beter van.

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 25 april 2002 02:29 schreef Soultaker het volgende:
Voortaan eerst debugen vooraleer je je probleem op GoT plaatst, alsjeblieft. Hier wordt niemand beter van.
nou ja, ik heb wat geleerd :P

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • beany
  • Registratie: Juni 2001
  • Laatst online: 05:29

beany

Meeheheheheh

Op donderdag 25 april 2002 02:29 schreef Soultaker het volgende:
Voortaan eerst debuggen vooraleer je je probleem op GoT plaatst, alsjeblieft. Hier wordt niemand beter van.
[we gaan ff offtopic]
Hier kan ik me niet helemaal in vinden. Ik ben het met je eens dat niet bij het eerste de beste probleempje maar gepost moet worden. Maar:

Ik zit zelf ook wel eens met wat probleempies, waar ik op dat moment niet uit kom. Ik zit dan een uur te turen naar de code, en ik zie gewoon niet wat het probleem is. Ik begin dan gewoon tegen mijn collega te bleren wat het probleem is. Die snapt voor 10% wat er aan de hand is(ontelbare vraagtekens staan in zijn ogen). Maar doordat ik het probleem vertel tegen mijn collega, zie ik vaak zelf spontaan de oplossing. Het bespreken van je probleem is iets waar iemand anders vaak niets aan heeft, maar kan wel het lichtje voor jouw aan doen. Als de oplossing daarna wordt verteld(wat hier ook gebeurde) kunnen anderen hier ook nog wat van leren.

Kortom: inderdaad niet te snel, maar als je het gewoon niet meer ziet, posten maar, want daar is dit forum toch ook voor?
[/we gaan ff offtopic]

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 06-09 21:21

Aaargh!

Bow for me for I am prutser

Topicstarter
Op donderdag 25 april 2002 02:29 schreef Soultaker het volgende:
Voortaan eerst debuggen vooraleer je je probleem op GoT plaatst, alsjeblieft. Hier wordt niemand beter van.
Ik had zelf nog niet aan een buffer overflow gedacht |:( dus het heeft het debugging process wel degelijk versneld.

Those who do not understand Unix are condemned to reinvent it, poorly.


  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Beany +1 mooi gezegd :)
Pagina: 1