WTF: Xcode Analyzer

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

  • WTF: Xcode Analyzer

    Hallo,

    ich habe folgenden code (paste ich weiter unten).

    Wenn ich den Analyzer laufen lasse, bringt er keine Meldung (screenshot 1).
    Kann ja nicht sein, da ist eindeutig ein leak drin!

    Dann kommentiere ich die "C2 user;" aus und lass ihn wieder analysieren.
    Jetzt kommt die erwartete meldung (siehe screenshot 2).

    Denk ich mir also dass er es nicht mag eine C++ klasse im selben code zu haben, spiel noch bisschen damit rum und dann das:
    Ich lasse "C2 user;" wieder im code drin, commentiere aber eine der zwei string-variablen (egal welche) in der C++ klasse aus, sodass nur noch eine vorhanden ist. Und jetzt kommt das was ich nicht verstehe: Er zeigt nun die meldung zum leak (siehe screenshot 3). Wie kann das sein. Der unterschied zum ersten versuch ist ja nur die auskommentierte string-variable. Hab die dann natürlich wieder ent-kommentiert sodass ich wieder den ausgangscode habe und schon erscheint wieder KEINE warnung beim analysieren.

    Hat jemand eine erklärung dafür?

    Hier noch der code als text:

    C-Quellcode

    1. #include <CoreFoundation/CoreFoundation.h>
    2. #include <string>
    3. class C2 {
    4. public:
    5. C2() {};
    6. std::string s1;
    7. //std::string s2;
    8. };
    9. void test()
    10. {
    11. C2 user;
    12. CFStringRef xmlString = CFStringCreateWithBytes(NULL, (const UInt8 *)"aaa", 3, kCFStringEncodingUTF8, false);
    13. CFShow(xmlString);
    14. }
    Alles anzeigen
    Dateien
    • 1.png

      (44,26 kB, 480 mal heruntergeladen, zuletzt: )
    • 2.png

      (50,11 kB, 421 mal heruntergeladen, zuletzt: )
    • 3.png

      (48,8 kB, 442 mal heruntergeladen, zuletzt: )
  • macmoonshine schrieb:

    Wahrscheinlich hat der Analyzer Probleme mit der Mischung aus C++ und Objective-C-Code. Sobald man Spuren von C++ im Code hat, funktionieren ja auch andere Tools (z.B. Refactoring) nicht mehr.
    Das hab ich mir auch gedacht.
    Aber warum funktioniert es wenn der C++ code drin ist und ich eine der zwei c++ string variablen auskommentiere? Das ist ja das ganze komische an der geschichte!
  • gritsch schrieb:

    macmoonshine schrieb:

    Wahrscheinlich hat der Analyzer Probleme mit der Mischung aus C++ und Objective-C-Code. Sobald man Spuren von C++ im Code hat, funktionieren ja auch andere Tools (z.B. Refactoring) nicht mehr.
    Das hab ich mir auch gedacht.Aber warum funktioniert es wenn der C++ code drin ist und ich eine der zwei c++ string variablen auskommentiere? Das ist ja das ganze komische an der geschichte!
    Ja, das zweite Beispiel ist in der Tat seltsam. Kannst du nicht mal einen Bugreport erstellen?
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:


    Ja, das zweite Beispiel ist in der Tat seltsam. Kannst du nicht mal einen Bugreport erstellen?
    Ganz ehrlich? Da geh ich in der zeit lieber einen Caffee trinken - die bugreports bei Apple sind für den Lokus.
    Entweder sie werden sofort als duplicate geschlossen und man hat keine weiteren infos wie mans umgehen kann, wanns behoben wird etc oder die bugs werden einfach ignoeriert. Hab davon massenweise im bugtracker die ich zu zeiten von 10.4-10.7 reported habe. Die bugs sind immer noch offen (von apple unbearbeitet) und leider auch noch in den aktuellen systemen zu finden. Aber weil das bugs in selten genutzen komponenten sind, interessiert es apple einfach nicht.
  • gritsch schrieb:

    macmoonshine schrieb:

    Ja, das zweite Beispiel ist in der Tat seltsam. Kannst du nicht mal einen Bugreport erstellen?
    Ganz ehrlich? Da geh ich in der zeit lieber einen Caffee trinken - die bugreports bei Apple sind für den Lokus.Entweder sie werden sofort als duplicate geschlossen und man hat keine weiteren infos wie mans umgehen kann, wanns behoben wird etc oder die bugs werden einfach ignoeriert. Hab davon massenweise im bugtracker die ich zu zeiten von 10.4-10.7 reported habe. Die bugs sind immer noch offen (von apple unbearbeitet) und leider auch noch in den aktuellen systemen zu finden. Aber weil das bugs in selten genutzen komponenten sind, interessiert es apple einfach nicht.
    Ich kann das nachvollziehen. Geht mir z.T. ähnlich. ...einerseits.

    Andererseits, und darüber bin ich froh, gibt es bei Apple tatsächlich einen direkten Weg Bugs zu melden. Das gibt es bei den meisten anderen nicht. – Und zwar gar nicht.

    Denn bei fast jedem anderen Anbieter muss man sich erst durch die 7 Level der Support-Hölle kämpfen, bevor man jemand kompetenten zu Sprechen bekommt. Und bevor ich dieses Adventure auf mich nehme, wechsel ich lieber das Produkt oder den Anbieter. - Mit Apples Bugreporter habe ich das Problem nicht. Das geht relativ direkt zu den Entwicklern. – Anm.: Die Rückmeldung ist evtl. unbefriedigend, aber vor dem Hintergrund absolut nachvollziehbar.

    Hier ein Beispiel, wie das auf der anderen Seite aussieht: How to Report a Bug to Microsoft
    (Lesenswert) :D
    * Kann Spuren von Erdnüssen enthalten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NSObject () aus folgendem Grund: Typos

  • Ist zufällig jemand unter 10.12 mit neuestem Xcode und kann das reproduzieren?
    Ich hab auf meinen maschinen noch 10.11 mit Xcode 8.2.1
    Ich glaub ja nicht dass es mit der neusten version gefixt ist, wenn das aber so wäre, könnt ich das risen projekt das ich geerbt habe mal unter 10.12 analysieren lassen...