Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VS2005 / C++] Debugging op sub-programma

Pagina: 1
Acties:

  • Oogst
  • Registratie: Juli 2001
  • Laatst online: 31-08 09:33
(Gekke topictitel, sorrie, ik wist het niet beter te beschrijven.)

Ik heb een kleine tool geschreven die wat pre-processing doet voordat mijn hoofdprogramma daadwerkelijk draait. Die tool moet na het draaien de dingen ook weer terugzetten, dus ik heb het op het moment zo opgezet dat de tool het hoofdprogramma start met een system("HoofdProgramma.exe") commando. Dit is handig, want daardoor komt de tool terug na het runnen van het programma en kan deze opgeslagen gegevens over de status tevoren gebruiken om alles weer in de originele staat te herstellen. Om soepel aan mijn hoofdprogramma te kunnen werken, heb ik in Visual Studio ingesteld dat die automatisch dat extra programmaatje runt. Echter, nu kan ik de debugger niet meer in, want die probeert dat extra programmaatje te debuggen in plaats van het hoofdprogramma.

Mijn vraag is dus: hoe kan ik dat extra programmaatje runnen en toch ook gewoon debuggen en zo?

Wat in elk geval een vereiste is, is dat dat kleine programmaatje altijd wordt gerund voordat het hoofdprogramma wordt gerund, en dat het kleine programmaatje achteraf weer wordt afgemaakt en daarbij data van de eerste run gewoon nog beschikbaar heeft.

Dit is wat ik op het moment heb ingesteld in Visual Studio:
Debugging command: $(SolutionDir)Debug result\ExtraProgram.exe
Command arguments: HoofdProgramma.exe
Op de debugger na, werkt dit dus gewoon prima nu, en ik wil die debugger dus terug hebben.

Devblog / portfolio
Swords & Soldiers
Awesomenauts
Proun
Cello Fortress


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waarom zet je beide projecten niet in dezelfde solution?

[ Voor 20% gewijzigd door RobIII op 10-03-2008 16:15 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:42
Als je het wil debuggen, zal je je debugger moeten attachen aan dat proces vermoed ik.

Dus, je zal dan VS.NET moeten opstarten, de solution van dat andere externe programmaatje openen, en dan de debugger attachen aan het extraprogram.exe process.

https://fgheysels.github.io/


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 01-11 22:03

leuk_he

1. Controleer de kabel!

code:
1
2
3
4
5
#ifdef  _DEBUG
system("Devenv.exe /debugexe hoofdprogramma.exe")
#else
system("HoofdProgramma.exe")
#endif


Start dus wel ELKE keer een extra instantie van visual studio op...... of je dat nou handig vind????


http://msdn2.microsoft.co...rary/ms241274(VS.80).aspx

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • Oogst
  • Registratie: Juli 2001
  • Laatst online: 31-08 09:33
RobIII schreef op maandag 10 maart 2008 @ 16:15:
Waarom zet je beide projecten niet in dezelfde solution?
Het extra programmaatje moet ook draaien rond dingen die niet door mij gecode zijn, dus het moet wel echt apart gehouden worden en kan niet in de code van het hoofdprogramma verwerkt worden.
whoami schreef op maandag 10 maart 2008 @ 16:16:
Als je het wil debuggen, zal je je debugger moeten attachen aan dat proces vermoed ik.

Dus, je zal dan VS.NET moeten opstarten, de solution van dat andere externe programmaatje openen, en dan de debugger attachen aan het extraprogram.exe process.
Dat zou wel kunnen werken, maar is wel extra gedoe elke keer.
leuk_he schreef op maandag 10 maart 2008 @ 16:34:
code:
1
2
3
4
5
#ifdef  _DEBUG
system("Devenv.exe /debugexe hoofdprogramma.exe")
#else
system("HoofdProgramma.exe")
#endif


Start dus wel ELKE keer een extra instantie van visual studio op...... of je dat nou handig vind????


http://msdn2.microsoft.co...rary/ms241274(VS.80).aspx
Dan wordt de starttijd flink langer, das toch ook weer jammer. Kan ik niet via system koppelen aan de huidige visual studio?

Devblog / portfolio
Swords & Soldiers
Awesomenauts
Proun
Cello Fortress


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19-11 23:43

.oisyn

Moderator Devschuur®

Demotivational Speaker

Is het belangrijk dat die wrapper per se de staat weer terugzet voordat je stopt met debuggen? Anders zou je kunnen overwegen om de wrapper je devenv te laten starten, waarin je dan vervolgens je development en debug-sessies doet (door direct HoofdProgramma.exe te starten). Als je je devenv aan het eind afsluit zet je wrapper de staat weer terug.

Een alternatief waar je aan zou kunnen denken is het schrijven van een kleine add-on (of wellicht dat het ook met macro's kan) die de proces-lijst monitort (of hij wordt geinstrumenteert door de wrapper dmv shared mem oid) en de debugger attached zodra zo'n proces gestart wordt.

[ Voor 34% gewijzigd door .oisyn op 10-03-2008 18:00 ]

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.


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 01-11 22:03

leuk_he

1. Controleer de kabel!

Oogst schreef op maandag 10 maart 2008 @ 17:26:
Dan wordt de starttijd flink langer, das toch ook weer jammer. Kan ik niet via system koppelen aan de huidige visual studio?
Wat is het bezwaar om gewoon beide programma in 1 programma te integreren? Je hebt van bede de source code en beide zijn in een zelfde taal/omgving gebouwd? Ok, je kleine hulp programma wordt wat groter, maar aanroepen met "system" is ook een dure call.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • Oogst
  • Registratie: Juli 2001
  • Laatst online: 31-08 09:33
.oisyn schreef op maandag 10 maart 2008 @ 17:57:
Is het belangrijk dat die wrapper per se de staat weer terugzet voordat je stopt met debuggen? Anders zou je kunnen overwegen om de wrapper je devenv te laten starten, waarin je dan vervolgens je development en debug-sessies doet (door direct HoofdProgramma.exe te starten). Als je je devenv aan het eind afsluit zet je wrapper de staat weer terug.
Dat gaat niet werken, omdat mijn extra programmaatje onder andere de datum verandert en dan denkt de compiler dat hij altijd alles moet recompilen, wat nogal vervelend is bij 5 minuten compile tijd voor de totale applicatie.
Een alternatief waar je aan zou kunnen denken is het schrijven van een kleine add-on (of wellicht dat het ook met macro's kan) die de proces-lijst monitort (of hij wordt geinstrumenteert door de wrapper dmv shared mem oid) en de debugger attached zodra zo'n proces gestart wordt.
Oei, dat klinkt erg ingewikkeld, niet als iets dat ik even snel zou kunnen doen!
leuk_he schreef op maandag 10 maart 2008 @ 18:07:
[...]

Wat is het bezwaar om gewoon beide programma in 1 programma te integreren? Je hebt van bede de source code en beide zijn in een zelfde taal/omgving gebouwd? Ok, je kleine hulp programma wordt wat groter, maar aanroepen met "system" is ook een dure call.
Niet alles draait om volledig eigen source code. De code wordt gecombineerd met meerdere programma's en sommige zijn home-coded, terwijl anderen alleen home-coded plug-ins krijgen.

Devblog / portfolio
Swords & Soldiers
Awesomenauts
Proun
Cello Fortress


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:42
Oogst schreef op maandag 10 maart 2008 @ 17:26:
[...]

Het extra programmaatje moet ook draaien rond dingen die niet door mij gecode zijn, dus het moet wel echt apart gehouden worden en kan niet in de code van het hoofdprogramma verwerkt worden.
Wat doet dat extra programmaatje ? Is het niet mogelijk om dit gewoon als DLL te maken ?

https://fgheysels.github.io/

Pagina: 1