versuch 2


  • Mod

    LinkeT schrieb:

    so bitte diesmal nicht gleich schliessen ...

    das war doch dein wunsch dass die antworten an dich per mail gehen

    LinkeT schrieb:

    rapso schrieb:

    deine abstuerze kommen daher dass du deine problemen nicht auf den grund gehst,
    sondern die sache so belaesst wie sie ist, solange es laeuft (z.b. "Ohne malloc stürzt das Program (warum auch immer) ab und zwar mit ein Fehler wo hin zu schreiben."), woher willst du wissen dass es nicht dieser fehler ist der trotz allokation auf einer anderen maschine nicht trotzdem den absturz verursacht?

    doch geh ich sonst würd ich malloc nicht benutzen - weil ich 2 objekte rendere (egal ich welcher art und weise - das eine wird auf beiden PCs gerendert und das andere nur auf einer

    auf den pointer der auf den von malloc allokierten speicher zeigte wurde danach sofort ein anderer wert zugewiesen, sodass dein malloc komplett nutzlos war und darauf hatte dich jemand in dem thread ueber die kaputte float-zahl hingewiesen, darauf hast du diese antwort gegeben.

    LinkeT schrieb:

    rapso schrieb:

    du hast simple abstuerze hier, was sollen wir dir dabei helfen? du musst es schlichtweg debuggen.

    ohne IDE auf dem test rechner (wenn man projekte entwickelt die auf jeder maschine laufen sollen darf man keine IDE installieren - hat ja auch im normal Fall kein Enduser

    remotedebugging?

    LinkeT schrieb:

    rapso schrieb:

    fang mit grundlegenden sachen an, z.b. logging, darin wird stehen an welcher stelle dein absturz ist und dann kannst du ihn auch fixen.

    hab ich HRESULT von allen DXfunktionen == 0 == S_OK (hab es um es einfach zu halten immer drauf addiert und den wert anschliessend ausgegeben und das per IF(hr==S_OK){.//OK..}else{..//nicht OK...}

    gut, nun mach es aufwendiger und finde raus wo es nen fehler gibt.

    LinkeT schrieb:

    rapso schrieb:

    aber auf deinen wunsch hin werd ich hier verhindern das TGGC erfaehrt wenn dir jemand seine komplettloesung fuers fixen all deiner bugs mitteilt.

    hab ich nach all meinen fehler gefragt bislang at ich 2 sachen die ich hier gepostet hab - wobei ich selbst schon mehr als das 10-20 fache an fehlern in meinem Projekt selbst gelöst habe, und mal bei 2 sachen wo ich mit meinem latein am ende bin hier mal nach frage ... mein got ich bin jaaa so schrecklich ...

    ja, wir debuggen gerne fuer dich, dafuer sind wir da 🙄

    LinkeT schrieb:

    so TGGC ist nicht nur mir negativ aufgefallen - aber er programiert ja schon jare länger und muss nun kommentar abgeben die dem der fragt in erster linie nur dazu zwingen negativ über das Board zu denken ... aber das ist ja sch**** egal ...

    was soll man schon zu deinen posts sagen? "ich hab hier abstuerze meines programms auf manchen rechnern" init.cpp zeile13 ist dein fehler.

    LinkeT schrieb:

    und ich dachte ein forum ist da das andere einem helfen bzw man anderen hilft

    aber nicht zum debuggen, darin besteht der sinn nicht, du hast keine unloesbaren fehler, sondern nur welche die ein wenig fleiss brauchen, du kannst noch nichtmal sagen bis zur welcher stelle dein programm kommt, was sollen wir da machen?



  • bool my_3dobj_inuse[1000];
    
    for(int i = 0;i<10000;i++)
      {
        if (my_3dobj_inuse[i] == false)
    

    solche probleme kann man oft durch einfaches hingucken loesen...



  • es stürzt ja nicht mal ab - es rendert das eine aber nicht das andere ...

    (das es gleich geschlossen wird war eigentlich nicht mein gedanke ich finds nur nicht ok das so ne sinnlose antwort kommt

    "remotedebugging? " per log ?

    am besten ihr testet mal das was ich verlinkt hab, würde nur gerne wissen ob es was ausgibt oder nicht - drückt mal f1 da kommt ne console wo dann paar ausgaben stehen die man als debug nutzen kann

    wenn ihr eine g36 seht ist es so richtig - aber ich seh sie nicht auf jedem PC bei mir bzw nur auf mein laptop(?)!

    hellihjb schrieb:

    bool my_3dobj_inuse[1000];
    
    for(int i = 0;i<10000;i++)
      {
        if (my_3dobj_inuse[i] == false)
    

    sollte es daran liegen würde es auf jedem rechner nicht funktionieren werds aber gleich mal beobachten

    das der der werte bereich nicht der selbe ist lag an einem versuch - hat ich noch nicht wieder korigiert ... 😮



  • hellihjb schrieb:

    bool my_3dobj_inuse[1000];
    
    for(int i = 0;i<10000;i++)
      {
        if (my_3dobj_inuse[i] == false)
    

    solche probleme kann man oft durch einfaches hingucken loesen...

    huch wo ist denn da der Fehler? ich finds nich



  • "Allein bin ich nichts wert, und vermehre dennoch den Wert" (mit andern Worten eine 0) ist zuviel/zuwenig da.



  • my_3dobjs_inuse wird nur bis 1000 deklariert aber es ist möglich bis 10000 zugehen -> die daten werden aus nem zufalls speicher interpretiert ... das mein Program nicht gecrasht ist ui- schwein gehabt *G*

    zum thema remotedebugging hab ich das: http://msdn2.microsoft.com/en-us/netframework/aa569599.aspx gefunden - werd mich mal die nacht damit durch arbeiten um so den fehler zu finden warum es auf ner ati-graka angeizeigt wird und auf ner nividia-graka nicht ! für mein verständis ist das nen bissel un logisch drum hab ich hier hilfe gesucht ,,,

    hab herausgefunden das egal was ich als 3dobj-datei lade nicht gerendert werde -> werd ich die lade routine noch mal weiter debugen vllt liegts ja daran ...

    in den kommenten 5 stunden kann ich leiter nicht progen 😡 also werd ich euch erstmal vor morgen nicht weiter belästigen *G*


  • Mod

    LinkeT schrieb:

    es stürzt ja nicht mal ab - es rendert das eine aber nicht das andere ...

    und das sollten wir woher wissen?

    (das es gleich geschlossen wird war eigentlich nicht mein gedanke ich finds nur nicht ok das so ne sinnlose antwort kommt

    du bestands auf email und nicht oeffentliche beitraege zur loesung.

    "remotedebugging? " per log ?

    nein, per remote debugger...

    am besten ihr testet mal das was ich verlinkt hab, würde nur gerne wissen ob es was ausgibt oder nicht - drückt mal f1 da kommt ne console wo dann paar ausgaben stehen die man als debug nutzen kann

    wenn ihr eine g36 seht ist es so richtig - aber ich seh sie nicht auf jedem PC bei mir bzw nur auf mein laptop(?)!

    und dann soll jeder sagen ob er was sieht oder nicht damit du ne statistik machst oder sollen wir es auch noch fixen was du coden willst?

    hellihjb schrieb:

    bool my_3dobj_inuse[1000];
    
    for(int i = 0;i<10000;i++)
      {
        if (my_3dobj_inuse[i] == false)
    

    sollte es daran liegen würde es auf jedem rechner nicht funktionieren werds aber gleich mal beobachten

    jeder rechner ist anders, wie soll es dann ueberall gleich sein? wenn es ueberall gleich liefe, dann haette das da oben erst nirgens laufen duerfen.



  • my_3dobjs_inuse wird nur bis 1000 deklariert aber es ist möglich bis 10000 zugehen
    die daten werden aus nem zufalls speicher interpretiert

    da du das array scheinbar nicht mal initialisierst, hast du damit sogar mehr recht als du denkst.
    die chance ist denkbar gering, dass ueberhaupt eines der elemente 0 (false) ist...
    zum glueck stehen meistens irgendwo nutzdaten die nullen enthalten 😉



  • aaach das eine ist 1000, das andere 10 000 .... mist 🙂 nich gesehn



  • hellihjb schrieb:

    my_3dobjs_inuse wird nur bis 1000 deklariert aber es ist möglich bis 10000 zugehen
    die daten werden aus nem zufalls speicher interpretiert

    da du das array scheinbar nicht mal initialisierst, hast du damit sogar mehr recht als du denkst.
    die chance ist denkbar gering, dass ueberhaupt eines der elemente 0 (false) ist...
    zum glueck stehen meistens irgendwo nutzdaten die nullen enthalten 😉

    im debuger stand da überall "false" ... da war ich glücklich ... zeromem(&my_3dobjs_inuse,sizeof(bool)*10000); sollte da ausreichen um es zu initialisieren oder ?!

    so ich schau mir mal den remote debuger an ... hoffentlich bringt das was ...
    ich bin soweit schonmal das alles was geladen wird bei meinem test-pc nicht angezeigt wird aber auf mein ide-pc angezigt wird (und ja der selbe ordner[physikalisch, per netzwerklaufwerk] mit relativen pfadangaben)



  • bei nen anderen funzt es, nur bei der nvidia nicht ... was kann man bei DX machen das es nur bei ATI geht ?!



  • bool my_3dobj_inuse[1000];
    

    zeromem(&my_3dobjs_inuse,sizeof(bool)*10000); sollte da ausreichen um es zu initialisieren oder ?!

    ...muesste gerade so "ausreichen" 😉
    uebrigens gibt es eine tolle erfindung namens constructor...

    bei nen anderen funzt es, nur bei der nvidia nicht

    entferne alle fehler aus deinem programm, dann laeuft es auch auf jedem rechner.


  • Mod

    hellihjb schrieb:

    bei nen anderen funzt es, nur bei der nvidia nicht

    entferne alle fehler aus deinem programm, dann laeuft es auch auf jedem rechner.

    du bist ja so krass drauf wie TGGC 😮 🤡



  • hellihjb schrieb:

    uebrigens gibt es eine tolle erfindung namens constructor...

    MyClass *blub = new MyClass[100];
    

    Wird da eigentlich für alle 100 Elemente der Constructor aufgerufen?


  • Mod

    xindon schrieb:

    hellihjb schrieb:

    uebrigens gibt es eine tolle erfindung namens constructor...

    MyClass *blub = new MyClass[100];
    

    Wird da eigentlich für alle 100 Elemente der Constructor aufgerufen?

    ja und beim loeschen der destructor



  • hellihjb schrieb:

    bei nen anderen funzt es, nur bei der nvidia nicht

    entferne alle fehler aus deinem programm, dann laeuft es auch auf jedem rechner.

    ich dachte ich muss fehler rein bauen damit es überall gleich läuft -.-

    also soweit hab ich das Problem schon mal begrenzt:

    es betrifft NUR objekte die ich aus einer datei auslesse.

    ich hab also 2 Objekte eines was beim laden erst errechnet wird ( der zylinder aus dem beispiel) und ein objekt was ich aus einer datei laden möchte ...

    auf 2 Rechner werden beide Objekte dargestellt und und auf 2 anderen wird nur das errechnette Objekt dargestellt ...

    ich hab nun auch schon die gesamten vertex positionen ausgegeben - das sah ziemlich normal aus, auf beiden(wo es dargestellt wird und wo es nicht dargestellt wird das selbe)

    ich seh schon ... aufgeben und das Projek von anfang an neuschreiben ... um dann auf den selben Fehler zu warten ... ist wohl nun das beste ... wenn man hier schon keine vernüftigen lösungsansetzte bekommt, "mach deine Fehler raus ..." echt geil 😡 klar mach ich hier und da noch mal paar fehler ... und ihr auch(!) aber die sind ja zum lernen gut 😃
    ich werd das mit werd den fehler mit den 1000(0) in zukunft mit #define max_blubb xxx umgehen.

    ich hab noch nen anderen Fehler gefunden - bei refreshcon() wird zuviel speicher kopiert - hatte gehofft das das mein Problem lösst aber -.-

    zum Thema remote-debugging könnte es sein das nicht mit Express Edition geht ? 😉

    ich bin fest davon überzeugt dass das Problem nicht sooo einfach zu lösen ist (alle array mitglieder auf false setzten...)
    scheinbar hab ich mich ca 10 mal falsch ausgedrückt wo ich gesagt habe das eine wird gerendert (das bedeutet für mich das ich der graka sage zeichne mir diese polygone(Vertexbuffr) aufm bildschirm) das laut HRESULT hr == S_OK [auf deutsch ohne Fehler] bei ATI sichtbar ist und bei nVidia NICHT sichtbar, da ja der screen gelöscht wird (mit einer farbe die mit hilfe von cos/sin errchnet wird )sollte man ja annehmen, dass das Objekt nicht sichtbar ist ...

    ich hate auf antwortengehoft wie du hast das und das (zB alphablending) so und so aktiviert und mit der komibination wirds bei nVidia transparent ,,, aber naja ... vllt sollte ich das mal zu nVidia schicken *G* die wissen da vllt mehr ,,,

    PS kennt wer nen tool was automtisch von diversen datein immer ein backup macht (zeitlich/tasten druck), so das man immer ein backup vom source code hat -.- am besten noch mit differenz...

    ok noch eine frage ... thema unicode:
    #undef unicode funzt nicht bzw weiss ich nicht ob ich das so richtig verstanden hab...

    bei der debugversion kann der compiler von "text" (nur) nach LPCSTR umwandeln und bei der Releaseversion (nur)nach LPCWSTR... bzw kann ich bei der Debugversion immer den text per "text" übergeben und bei der releaseversion nur L"text"



  • LinkeT schrieb:

    klar mach ich hier und da noch mal paar fehler ... und ihr auch

    Und weisste was ich dann mache? Ich setze mich hin und mach sie raus. Und du nicht! f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    LinkeT schrieb:

    klar mach ich hier und da noch mal paar fehler ... und ihr auch

    Und weisste was ich dann mache? Ich setze mich hin und mach sie raus. Und du nicht! f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    jo sitzt neben mir schaust mir über die schulter und weisst was ich mach/nich mach ... is klar ... fein das du das machst


  • Mod

    🙄 das forum ist um bei problemen zu helfen, nicht beim debuggen, dein ganzes jammern hier bring weder dich weiter, noch jemanden dazu fuer dich zu debuggen. du bist nicht der einzige der mal nen tag an nem bug sitzt und ich seh hier nicht hunderte threads von leuten die trivialbugs geloest bekommen wollen. wenn debugen dein defizit am programmieren ist, dann lern einfach sauberen code zu schreiben, dann ersparst du es dir, nimm eine programmiersprache die dir mehr unterstuetzung bietet z.b. c#,java,VB die mit aus diesem grund gemacht wurden.



  • ich hab ein problem damit das ein Program auf 2 rechnern 2 verschiedene ergebisse liefert - nach meinem Verständnis ist das schlicht weg unmöglich!

    debugen ist nicht min Problem (wie kommt ihr/du da drauf) ich hab schon diverse Fehler von mir schon durch debugen gelöst

    Also noch mal ich wollte nieeemals das einer von euch was von mi debugt (wie oft wurde gesagt ich slle den code posten).
    Ich wollte NUR (nicht mehr, kein bissel) nur einen lösungsansatz (im falle jemand hatte schon das Problem erfolgreich gelöst)...

    scheinbar sind fragen die hier nicht gelöst werden können unangebracht und werden mit dankbaren sprüchen wie "mach deine Fehler raus, dann funktioniert es" kommentiert ... sehr gut ... 👎

    EDIT:

    Nochmal kurz das Problem - 3d objekte werden nicht auf allen PCs gerendert - scheinbar nur auf welchen die ATI grafikkarten haben


Anmelden zum Antworten