Projektabbruch, kein Hinweis ausser Assembler code

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Projektabbruch, kein Hinweis ausser Assembler code

    Hallo erst einmal,
    dies ist die Methode, die ich mit einem Popup Menu aufgerufen habe :

    Quellcode

    1. -(IBAction)waveActions:(id)sender
    2. {
    3. NSLog(@"%@ \n",sender); // -> CC[2561:303] <NSPopUpButton: 0x610000168880>
    4. unsigned index = (unsigned)[sender indexOfSelectedItem];
    5. printf("index : %d \n",index);
    6. switch (index)
    7. {
    8. case 0:
    9. // _waveCollection = [self singlePlane:_waveObject];
    10. // [_waveView drawWaves:_waveCollection];
    11. printf("case 0 \n");
    12. break;
    13. case 1:
    14. // [self distancesOfTwoWavesWithManagedObject:_waveObject];
    15. printf("case 1 \n");
    16. break;
    17. default:
    18. printf("waveActions: selected index %d not valid \n", index);
    19. break;
    20. }
    21. }
    Alles anzeigen

    Wie man sieht, habe alle folgenden Aufrufe aus kommentiert.
    Den Assemmbler Code findet ihr im Anhang.

    Muss ich das Projekt in die Tonne treten ? Es hat inzwischen ca. 400 kB.
    Bitte, bitte,
    Uwe
    Dateien
    How come I can't see me in my mirror ?
  • Wenn du einen Breakpoint setzt und die Methode durchgehst, wo steigt er dann aus?
    In dieser Zeile?

    Quellcode

    1. unsigned index = (unsigned)[sender indexOfSelectedItem];


    sender ist vom Typ 'id'. Mich wundert es, dass der Compiler keinen Fehler anzeigt, da 'id' die Methode 'indexOfSelectedItem' nicht kennt (kennen sollte)?!
    Knowing is not enough, we must apply.
    Willing is not enough, we must do.
  • Nein, daran liegt es nicht: Das Objekt ist ja vom Typ NSPopUpButton und der kennt ja die Methode "indexOfSelectedItem".

    Schau' mal in Deinen Quellcode in die Zeile 130. Ist das die mit "unsigned index = (unsigned)[sender indexOfSelectedItem];"? Wenn ja, hat vermutlich die Speicherverwaltung den NSPopUpButton schon weggeräumt, weil das Fenster z.B. schon geschlossen war.

    schönen Gruß

    gandhi
  • marceo:

    marceo schrieb:

    Wenn du einen Breakpoint setzt und die Methode durchgehst, wo steigt er dann aus?
    In dieser Zeile?

    Er bleibt bei keinem Breakpoint stehen, das hat mich nervös gemacht. Ich hab' dann eine Routine in main ausgeführt, die prüft, ob der Debugger vorhanden ist und das ist er. Keine Ahnung, warum er nicht seine Arbeit getan hat. Vielleicht lag's daran : Nachdem ich den Rechner hochgefahren hab',kam die Fehlermeldung :

    ld: file not found: /usr/lib/system/libdnsinfo.dylib for architecture x86_64

    clang: error: linker command failed with exit code 1 (use -v to see invocation)



    Ich versuchte es mit as -v,

    Apple Inc version cctools-855, GNU assembler version 1.38



    Das war's wohl nicht, vielleicht muss man was Xcode spezifisches eingeben, das ich aber nicht kenne.
    ghandi:
    Dass ein Fenster geschlossen war, kann ich nicht glauben, ich hab's x-mal wiederholt. Vielleicht liegt's tatsächlich an der fehlenden Datei,
    um das herauszufinden, bin ich auf eure Hilfe angewiesen.
    Fühlt euch von mir bezahlt :)
    Gruss
    Uwe
    How come I can't see me in my mirror ?
  • Spannend ist die Frage, was in Zeile 130 Deiner -waveActions: steht.
    Und hör um Himmels Willen auf wild umherzucasten!

    Vermutlich castest Du einen 'long' in einen 'unsigned int', willst diesen in den Format Spezifier '%d' drücken und Dir raucht das Ganze ab, da index den Inhalt 'NSNotFound' hat.
    NSNotFound ist dasselbe wie NSIntegerMax, welches ein NSInteger ist und dementsprechend ein 'signed long' darstellt (bzw. ein 'signed long long' auf 32 Bit Systemen, afair)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Marco Feltmann ()

  • Hui, Abbruch im Assembler, Debugger will nicht, irgendwas mit as -v, irgendwelche dylibs fehlen - ist etwas viel auf einmal. Ich kann nicht nachvollziehen, wie das alles miteinander zusammenhängen sollte. Kannst du dein Projekt so weit runterbrechen oder ein isoliertes Demoprojekt zusammenbasteln, in dem der Fehler auftaucht? Ansonsten befürchte ich, dass das hier ein wildes Gestocher im Nebel wird...
    Multigrad - 360°-Produktfotografie für den Mac
  • Also: Wenn ich das Projekt direkt so starte, steigt es direkt nach einer Log-Ausgabe "Debugging 2048" aus, scheint am Test in der main.m zu liegen. Wenn ich dort den return auskommentiere, startet das Projekt normal - ich erhalte zwei Fenster, eins mit einem Preview und eins mit jeder Menge Knöpfen. Von denen reagiert nichts, weil ihre Aktionen in diesem Projekt anscheinend nicht verdrahtet sind. Lediglich in der linken Spalte kann ich per Plus-Button ein neues Objekt erzeugen - gleichzeitig erscheint eine Warnung, dass dem neuen Objekt anscheinend die Property rotationX (oder so ähnlich) fehlt. Soweit kann ich den beschriebenen Fehler aber noch nicht konstruieren.

    Verbinde ich die Aktion des Popup-Buttons mit "waveActions:" des Controllers, und wähle etwas im Popup-Button aus, lande ich wie erwartet in der verdrahteten Methode. Diese scheint ganz normal zu funktionieren und lässt sich hier auch ganz normal debuggen. Die Methoden in den einzelnen Cases werfen Exceptions, weil irgendwo versucht wird, etwas auf nil zu setzen, aber das scheint ja nicht das Ursprungsproblem zu sein. Kommentiere ich die eigentlichen Aktionen in den Cases aus und ersetze sie durch Logs, läuft die Methode hier ganz normal und ohne Überraschungen durch. Der Wert des Popup-Buttons wird korrekt ausgelesen und gehandelt.

    OSX 10.8.5, Xcode 5.1.1.

    Das SDK steht auf 10.8, falls du auf 10.9 bist: Ist das SDK korrekt installiert? Bringt es etwas, das SDK auf 10.9 zu stellen? Kann es sein, dass deine Xcode-Installation irgendwo einen Knacks hat?
    Multigrad - 360°-Produktfotografie für den Mac
  • Ja, einfach ohne NSApplicationMain aus der main() rausspringen scheint mir auch ein bisschen unglücklich gelöst.
    In dem Fall bricht das Projekt aber nicht ab sondern wird sauber beendet. Deshalb greifen auch keinerlei Breakpoints. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Lieber Mattik, da bin ich aber froh.
    Vielleicht suchst du die Datei

    /usr/lib/system/libdnsinfo.dylib

    Wenn du sie gefunden hast, schicke sie mir bitte. iagow@me.com
    Dass die Bindings und Outlets nicht vorhanden sind,liegt daran, dass ich das Projekt mit einem neuen Namen aufgebaut habe. Bis ich den alten Zustand hergestellt habe, das dauert noch.
    Dass ich mit 10.8 operiere, liegt daran, dass das GLString Objekt cgl_ctx

    Quellcode

    1. CGLContextObj cgl_ctx; // current context at time of texture creation

    von 10.9 nicht akzeptiert wird.
    Was Xcode betrifft, habe schon an eine Neuinstallation gedacht, momentan weiss ich nicht wie ich den AppStore überreden kann, mir den Download zu erlauben. Ich hab' vorhin mit Apple Support gesprochen, der Profi will morgen helfen.
    Wenn du mir die Datei morgen vor 13 Uhr schickst, erübrigt sich das.
    Zwei Fragen Habe ich noch:
    Darf ich die Model-Datei durch eine andere ersetzen ? , dann ich mir die mühselige und fehleranfällige Tipperei sparen.
    und. willst du mir sagen, wie ich dir ein Like zukommen lassen kann ?
    Auf jeden Fall danke und danke im voraus.
    Uwe
    How come I can't see me in my mirror ?
  • Dylans Ghost schrieb:

    Was Xcode betrifft, habe schon an eine Neuinstallation gedacht, momentan weiss ich nicht wie ich den AppStore überreden kann, mir den Download zu erlauben.


    Lösch einfach Xcode aus dem Programme-Ordner, dann sollte Xcode sich neu installieren lassen. Danach kannst den Papierkorb leeren und somit Xcode wirklich löschen. Falls die Neuinstallation fehl schlägt, hast Du Xcode noch im Papierkorb.

    Ich hab mir auch den Code kurz angeschaut und weiß nicht genau wo dein Problem liegt. Wenn man wie beschrieben vor geht, dann springt man auch in die Methode rein... Im Allgemeinen sieht der Code etwas zusammenkopiert aus. Den könnte man echt überarbeiten. Ganz schön wird Pi neu definiert... Viele der OpenGL-Funktionen gibt's eigentlich nicht mehr. Da sollte man die neueren benützten.

    Für was bindest Du die libdnsinfo.dylib überhaupt ein - mal aus neugier gefragt?
  • Hallo manoh,
    Ich bin sehr interessiert an einem Projekt wie BasicOpenGl, nur eben für 10.9.Der wichtigste Teil meines Projekts is OpenGL,weil, meine Gedanken sind ohneVisualisierung kaum überzeugend.

    Viele der OpenGL-Funktionen gibt's eigentlich nicht mehr. Da sollte man die neueren benützten.

    Wo finde ich die neuen Funktionen, besser ein Projekt,was nicht viel bietet,aber stabil läuft und ausbaufähig ist, hast du ein solches?

    Für was bindest Du die libdnsinfo.dylib überhaupt ein - mal aus neugier gefragt?

    Ich wollte nicht, 10.8 verlangt das und Apple hat die Datei nicht mitgeliefert.Dass ich nicht mit 10.9 arbeite liegt daran,
    dass mein openGLView code so alt ist.

    Alles klar ? Klar.
    Uwe
    How come I can't see me in my mirror ?
  • Hallo Manuel :thumbsup:
    danke für deine mail.
    [
    Hi, jetzt hab ich doch noch die libdnsinfo.dylib unter dem Pfad /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib/system/libdnsinfo.dylib gefunden. Die gibt es anscheinend unter 10.9 nicht mehr.
    /quote]
    Das Programm startet wieder.

    Uwe
    How come I can't see me in my mirror ?