[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] linux/win forskelle



> > Jeg har skevet en (stor) stump kode som jeg efter en del debugging har fået til at køre
> rigtigt
> > godt i windoze (Visual har en bedre debugger end gdb), men nu virker det ikke i Linux (hvor
> det
> > skal bruges :-(.
> 
> På hvilket tidspunkt optræder problemerne? Compile-time eller Run-time
> og hvad er fejlbeskrivelsen?

Programmet skriver noget kode(!) ud fra en anden kodefil som er fyldt med macroer der skal læses.
Eksempel:

#ifdef [dim=3D]
  float v[N][N][N];
#endif [dim=3D]
#ifdef [dim=2D]
  float v[N][N];
#endif [dim=2D]

Her skal der stå   
float v[N][N][N];
hvis det er en 3D simulering og 
float v[N][N];
for en 2D og så fremdeles.

Sagen er der kan være flere macroer om et stykke kode, så det skal køre rekursivt. 
Det er hamrende svært at debugge fordi der er så mange kombinationsmuligheder, men jeg har lavet
nogle ret ekstreme testfiler som den har skrevet korrekt.
I Linux går den i en uendelig loop fordi en af macroerne bliver læst forkert, men det må jo betyde
der er en forskel fra windoze eftersom det virker der.


> Udfra din beskrivelse tyder det på, at du har debugget en hel del for at
> få programmet til at køre på windoze. At det kan køre er jo langt fra
> ensbetydende med at der er fejlfrit! Og det er måske der problemerne er!
> Fx. har nogle windoze compilere det med at initialisere alle variable
> til et eller andet (vistnok 0). Det er absolut ikke noget man skal
> forlade sig på, så hvis du (ubevidst) har antaget sådan noget i din
> kode, så kan du komme på et arbejde med at initialisere variabler.
> Desuden kan der være problemer med nul-terminering af strenge.
> 
> Dette er bare et par af de kendte run-time problemer ved protering af
> programmer der 'virker', men ikke nødvendigvis er fejlfrie!

 


__________________________________________________
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:08 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *