Architektur einer ausführbaren Datei unter macOS ermitteln

Mit Apple Silicon können Applikationen unter macOS auf zwei unterschiedlichen Architekturen laufen. Wer sehen möchte welche Architektur eine App nutzt, kann dies in Aktivitätsanzeige sehen.

In der Aktivitätsanzeige wird die Architektur der ausgeführten Apps angezeigt

Allerdings muss die Applikation dafür gestartet werden. Im Terminal lässt sich die bereitgestellte Architektur der Applikation über den file-Befehl ermitteln:

file /Applications/Joplin.app/Contents/MacOS/Joplin

Als Ausgabe erscheinen dann die entsprechenden Architekturen welche in der ausführbaren Datei enthalten sind:

/Applications/Joplin.app/Contents/MacOS/Joplin: Mach-O 64-bit executable x86_64

Auch Universal Binaries können genutzt werden:

file /Applications/bsnes.app/Contents/MacOS/bsnes

Als Ausgabe erscheinen dann die entsprechenden enthaltenden Architekturen:

/Applications/bsnes.app/Contents/MacOS/bsnes: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
/Applications/bsnes.app/Contents/MacOS/bsnes (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/bsnes.app/Contents/MacOS/bsnes (for architecture arm64): Mach-O 64-bit executable arm64

JVM creation failed in Netbeans unter Windows (64 Bit)

Wenn man unter Windows die neuste Version von Netbeans startet so bekommt man dort gleich nach dem Start eine kurze und knappe Fehlermeldung:

JVM creation failed

Diese tritt wohl nur bei 64 Bit Systemen mit mehr als 4 GiB Speicher im System auf. Allerdings scheint es auch bei Rechnern aufzutreten welche genau 4 GiB Arbeitsspeicher im System haben. Abhilfe schafft es hier die Datei netbeans.conf zu bearbeiten, welche sich bei einer normalen Installation im Verzeichnis

C:\Program Files (x86)\NetBeans 7.0.1\etc

befinden sollte. In dieser Datei sucht man die Option

netbeans_default_options

und hängt dort noch ein (die zuzuweisende Speichergröße kann frei gewählt werden)

-J-Xmx512m

heran. Dies setzt den zu benutzenden Speicher fest und somit kann Netbeans dann wieder ganz normal gestartet werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/NetBeans
http://solariz.de/3573/netbeans-ide-fehler-jvm-creation-failed.htm

Visual Studio ignoriert die Haltepunkte beim Debuggen

Manchmal kann einen die Softwareentwicklung schon in den Wahnsinn treiben, vor allem wenn es um triviale Dinge geht. So sollte es ja eigentlich selbstverständlich sein, das der Debugger an einem Haltepunkt hält. Mein erster Gedanke war, das es daran liegt das ich das Projekt im Debugmodus auf „Any CPU“ eingestellt habe. Sobald ich es auf „x86“ oder „x64“ gestellt habe, hielt der Debugger an der gewünschten Stelle. Allerdings hatte ich ein ähnliches Projekt mit fast den selben Einstellungen (auch „Any CPU“), doch dort funktionierte es mit dem Debugger. Also sollte es ein Vergleich der Projektdateien richten. Nach einiger Zeit war hier auch kein Erfolg zu melden.

Beim Starten des Projektes fiel mir allerdings auf das die Haltepunkte ausgeblendet wurden:

Im Tooltip zu den Haltepunkten stand dann:

No symbols have been loaded for this document

Dies brachte mich dazu in das „bin/Debug“ Verzeichnis zu schauen und siehe da, es gab keine pdb Dateien für das Projekt. Um die pdb Dateien für das Projekt anzulegen, geht man in die Projekteinstellungen, dort auf „Build“ und dann auf „Advanced“.

In dem sich darauf öffnenden Dialog stellt man die „Debug info“ auf „full“. Damit sollten die PDB Dateien erzeugt werden und das debuggen wieder funktionieren.

Weitere Informationen gibt es unter:
http://en.wikipedia.org/wiki/Program_database
http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.71%29.aspx
http://geekswithblogs.net/dbutscher/archive/2007/06/26/113472.aspx
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx