Eine Liste von nützlichen Warnungen, die normalerweise ausgeschaltet sind.
Genaue Beschreibung unter http://www.linux-praxis.de/lpic1/lpi101/1.102.4.html
Das System verwaltet die Librarys und lät diese automatisch, wenn sie gebraucht werden. Standardmässig liegen die ausführbaren Dateien unter /lib oder /usr/lib. Weitere Verzeichnisse können in der Datei /etc/ld.so.conf angegeben werden. Änderungen der Datei /etc/ld.so.conf müssen mit ldconfig aktiviert werden.
Mit dem Befehl ldd <ausführbare Datei> kann geprüft werden, welche Libraries die Aplikation braucht und ob diese verfügbar sind.
Im ausführbaren Programm kann über die Linkeroption -R ein sogenannter RPATH angegeben werden. Hier wird als erstes nach einem Shared Object gesucht. Der RPATH einer Datei kann mit
readelf -d <binary> | grep RPATH
angezeigt werden. Zum Ändern steht das Tool patchelf zur Verfügung.
Hier sind shared libraries im Detail beschrieben. Jede shared library hat einen Namen (soname). Die Eigenschaften einer library können mit objdump angezeigt werden. Der SONAME wird mit
objdump -p <library> | grep SONAME
angezeigt.
Mit Valgrind können Memory-Leaks entdeckt werden. Eine Einführung gibt es auf Heise.
ein Buch über Gerätetrieber gibt es unter
http://www.oreilly.de/german/freebooks/linuxdrive2ger/book1.html
Linux-Gerätetreiber, 2. Auflage
Alessandro Rubini & Jonathan Corbet
2. Auflage April 2002
ISBN 3-89721-138-6
608 Seiten, EUR 44,- (nicht mehr lieferbar)
Die Kernel Module liegen normalerweise im Verzeichnis /lib/modules/Kernelversion. Dort werden die Module in Unterverzeichnisse aufgeteilt. Mit depmod werden die Abhängigkeiten geprüft und gespeichert. Eine ausführliche Beschreibung steht auf http://www.linux-praxis.de/lpic1/lpi102/1.105.1.html.
Ubuntu legt standardmäßig keine Core-Dumps an. Um Core-Dumps zu bekommen muß mit:
ulimit -c [size]
die Größe für die Core-Dumps eingestellt werden. Die Größe wird in kB angegeben. Dann speichert Ubuntu die Core-Dumps für alle installierten Pakete. Damit die Core-Dumps auch für eigene Programme gespeichert werden, ist eine Konfigurationsdatei ~/.config/apport/settings notwendig. Die Datei muß folgendes enthalten:
[main] unpackaged=true
Wenn nun alle Einstellungen korrekt sind, wird ein Core-Dump nach /var/crash geschrieben. Die Log-Meldungen stehen in /var/log/apport.log. Das Dumpfile ist gepackt und muß zum Debuggen noch mit
apport-unpack <dumpfile> <Zielverzeichnis>
ausgepackt werden. Anschliesend kann es mit gdb geöffnet werden:
gdb <exe> <Zielverzeichnis>/CoreDump
Link: https://stackoverflow.com/questions/2065912/core-dumped-but-core-file-is-not-in-current-directory
Auf eine MS SQL Datenbank kann mit unixODBC und FreeTDS zugegriffen werden. Dazu müssen die notwendigen Pakete installiert werden. Damit Qt die ODBC-Schnittstelle verwenden kann muss noch libqt5sql5-odbc installiert sein.
Hier http://help.interfaceware.com/kb/904 ist beschrieben, wie unixODBC und FreeTDS zu installieren ist.
Installation der Komponenten:
sudo apt-get install unixodbc sudo apt-get install tdsodbc sudo apt-get install libqt5sql5-odbc
Beispielkofiguration in /etc/odbcinst.ini:
[FreeTDS] Description = FreeTDS Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so FileUsage = 1 CPTimeout = CPResuse = client charset = utf-8 Trace=Yes
Beispielkofiguration in /etc/odbc.ini:
[SolarEdge] Driver = FreeTDS Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so Server = 192.168.68.134 Port = 1433 Database = FPI
In den Eckigen Klammern wird der Datenbankname angegeben, wie er von der Applikation verwendet wird. Bei Server steht die IP oder URL des DB-Severs. Database beschreibt den Namen der Datenbank auf dem Server