Benutzer-Werkzeuge

Webseiten-Werkzeuge


unter_linux

GCC

Eine Liste von nützlichen Warnungen, die normalerweise ausgeschaltet sind.

Dynamische Librarys (Shared Libraries)

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.

RPATH

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.

Shared Objects

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.

Valgrind

Mit Valgrind können Memory-Leaks entdeckt werden. Eine Einführung gibt es auf Heise.

Gerätetreiber

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)

Kernel Module

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.

Core dumps

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

MS SQL über ODBC

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

unter_linux.txt · Zuletzt geändert: 2021/10/24 17:59 (Externe Bearbeitung)