225. gdb der Gnu Debugger

Größe: px
Ab Seite anzeigen:

Download "225. gdb der Gnu Debugger"

Transkript

1 225. gdb der Gnu Debugger Debuggen Oftmals enthält ein Programm einen Fehler, und man findet den Fehler nicht sofort. Eine Möglichkeit besteht aus vielen printf-anweisungen in dem Quelltext. Eleganter ist folgende Idee: Man übersetzt das Programm und läßt es Quellzeile für Quellzeile kontrolliert ablaufen. Dabei sollte man sich Variablen, Speicherflächen usw. interaktiv ansehen können. Das Problem der Fehlersuche und -behebung nennt man Debuggen. Ein Programm zur kontrollierten Ausführung von Programmen nennt man Debugger. Ein erstes Problem debug/pointer.c Das Beispiel enthält einen Fehler: int main(int argc, void * argv) { int * i; } *i=8; return 0; Die Ausführung scheitert wie erwartet: $ gcc Wall o pointer pointer.c $ pointer Segmentation fault Mit dem Schalter -g bereitet man Programme für eine mögliche Ausführung durch einen Debugger vor. $ gcc Wall g o pointer pointer.c $ pointer Segmentation fault Nun kann man das Programm mit einem Debugger starten gdb der Gnu Debugger gdb Der wohl bekannteste Debbugger ist der Gnu Debugger gdb. $ gdb pointer GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16.patched (i486 unknown linux target i486 linux), Copyright 1996 Free Software Foundation, Inc (gdb) run Starting program: /home/bernd/vorl/b98/code/debug/pointer Program received signal SIGSEGV, Segmentation fault. 0x in main (argc=1, argv=0xbffff6c4) at pointer.c:12 12 *i=8; (gdb) quit The program is running. Quit anyway (and kill it)? (y or n) y gdb erhält als Argument ein Programm, welches es dann im weiteren Verlauf kontrollieren soll. Durch den Befehl run startet gdb das angegebene Programm. Hier sieht man jetzt die Zeile, wo das Problem aufgetreten ist.

2 227. gdb der Gnu Debugger Befehlsübersicht (Auswahl) help break [file:][n name] list [file:][n name] step [n] next [n] run [args] print/fmt [expr NUM] set var=expr cont [n] call function(params) display/fmt expr quit file cmd signal tbreak [file:][n name] ptype typname whatis expr bt und frame undisplay n info display enable [n] delete [n] info breakpoints disable [n] enable [n] delete [n] info [arg] show [arg] search regexp commands [n] finish define cmdname cd und pwd awatch expr rwatch expr watch expr attach detach Hilfe zu den einzelnen Kommandos Breakpoint setzen Quellcode zeigen Einen Schritt ausführen Einen Schritt ausführen Programm starten Ausgabe eines Ausdrucks Variablen setzten Programmfortsetzung expliziter Funktionsaufruf Debugger beenden zu kontrollierendes Programm setzen Fortsetzung mit Signal einmaliger Breakpoint Typ ausgeben Datentyp bestimmen Stackuntersuchungen Verwaltung von Displays Verwaltungen von Break- und Watchpoints Information über den kontrollierten Prozeß Informationen über den Zustand des Debuggers Suche nach regulären Ausdrücken Kommandos auf Breakpoints setzen Programmfortsetzung neue Befehle definieren working directory Watchpoints setzen auf laufenden Prozeß aufsetzen Prozeß wieder lösen 228. help help help [arg] $ gdb GDB is Copyright 1996 Free Software Foundation, Inc. (gdb) help List of classes of commands:

3 running Running the program stack Examining the stack data Examining data breakpoints Making program stop at certain points files Specifying and examining files Type "help" followed by a class name for a list of commands in that class. Type "help" followed by command name for full documentation. Command name abbreviations are allowed if unambiguous. Ein Aufruf von help liefert eine Übersicht von Kommando-Klassen. So sind z.b. alle Kommandos zur Steuerung der Ausführung eines Prozesses in einer Klasse running zusammengefaßt. help class gibt eine Übersicht über alle Befehle in einer Klasse. (gdb) help running Running the program. List of commands: run Start debugged program continue Continue program being debugged step Step program until it reaches a different source line next Step program 229. help help command gibt endlich die Hilfe zu einem gesuchten Kommando aus. (gdb) help run Start debugged program. You may specify arguments to give it. Args may include "*", or "[]"; they are expanded using "sh". Input and output redirection with ">", "<", or ">>" are also allowed. With no arguments, uses arguments last specified (with "run" or "set args"). To cancel previous arguments and run with no arguments, use "set args" without arguments. Generell (nicht nur beim Kommando help) sind Abkürzungen, die eindeutig auf einen Kommando- oder Klassennamen verweisen, erlaubt break, list, step, next, run, cont break und list break [file:]function break [file:]number list [file:]function list [file:]number break setzt einen Breakpoint auf eine Zeile oder eine Funktion. Jedesmal, wenn der Prozeß während der Ausführung

4 einen aktiven Breakpoint erreicht, wird die Abarbeitung unterbrochen. list zeigt Zeilen des Quellcodes. Beispiel debug/cat.c cat.c ist das Beispiel cat5 aus dem io-katalog. Es enthält eine Funktion namens cat. $ gdb cat (gdb) break cat Breakpoint 1 at 0x80486c6: file cat.c, line 16. break bekommt neben einem optionalen Dateinamen als Argument einen Funktionsnamen oder eine Zeilennummer. Bei Ausführung wird der Prozeß vor der Abarbeitung der angegebenen Zeile oder Funktion unterbrochen. Wird list mit einer Zahl als Argument aufgerufen, so wird die Zahl als Zeilennummer interpretiert, und die umgebenden Zeilen werden angezeigt. Ohne Argument zeigt list die Zeilen in der Umgebung der als nächstes auszuführenden Zeile an. (gdb) list while ((ch = getc(fp))!= EOF) 22 putchar(ch); if (fp!= stdin) 25 fclose(fp); 26 } int main (int argc, char * argv[]) { 29 int n; (gdb) break 25 Breakpoint 2 at 0x80487d9: file cat.c, line break, list, step, next, run, cont run und step run [args] step [n] run startet das beim Aufruf von gdb angegebene Argument als Prozeß Schritt für Schritt. Die Argumente zu run werden dem Prozeß als Kommandozeilen-Argumente übergeben. Trifft der Prozeß zur Laufzeit auf einen Breakpoint, so wird wieder in den Befehlsmodus gewechselt. (gdb) run data Starting program: /home/bernd/vorl/b98/code/debug/cat data Breakpoint 1, cat (fnm=0xbffff851 "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) l void cat (const char * fnm) { 13 int ch; 14 FILE * fp; if (strcmp(fnm, " ") == 0) 17 fp = stdin, clearerr(fp); 18 else if (! (fp = fopen(fnm, "r")))

5 19 perror(fnm), exit(1); 20 Bei einem Breakpoint auf eine Funktion wird vor der Bearbeitung der ersten Befehlszeile angehalten. step führt nun einen Schritt aus. step n führt n Schritte aus. (gdb) s 18 else if (! (fp = fopen(fnm, "r"))) (gdb) s 21 while ((ch = getc(fp))!= EOF) (gdb) s 40 Hello World! 21 while ((ch = getc(fp))!= EOF) 232. break, list, step, next, run, cont next next [n] next führt wie step einen Schritt aus, wechselt dabei aber nicht in Unterfunktionen. $ gdb cat (gdb) break main Breakpoint 1 at 0x80487f6: file cat.c, line 31. (gdb) r Starting program: /home/bernd/vorl/b98/code/debug/cat Breakpoint 1, main (argc=1, argv=0xbffff6d4) at cat.c:31 31 if (argc <= 1) (gdb) s 32 cat(" "); (gdb) s cat (fnm=0x80488d8 " ") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/bernd/vorl/b98/code/debug/cat Breakpoint 1, main (argc=1, argv=0xbffff6d4) at cat.c:31 31 if (argc <= 1) (gdb) n 32 cat(" "); (gdb) n Hallo Hallo 37 if (fflush(stdout), ferror(stdout))

6 233. break, list, step, next, run, cont cont cont [n] cont ohne Argument setzt die Ausführung des Programms bis zum nächsten Breakpoint, Fehler oder bis zum Programmende fort. Mit einer Zahl als Argument setzt es die Ausführung bis zum Erreichen des n-ten Breakpoints, eines Fehlers oder bis zum Programmende fort print $ gdb cat (gdb) break cat Breakpoint 1 at 0x80486c6: file cat.c, line 16. (gdb) r data data Starting program: /home/bernd//code/debug/cat data data Breakpoint 1, cat (fnm=0xbffff84a "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) c 2 Will ignore next crossing of breakpoint 1. Continuing. Hello World! Hallo Welt! Hallo zusammen Hallo zusammen Breakpoint 1, cat (fnm=0xbffff851 "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) c Continuing. Hello World! Hallo Welt! Program exited normally. (gdb) print und set var=expr print/fmt [expr NUM] set var=expr print gibt den Wert von Ausdrücken aus. Im folgenden Beispiel wird ein Breakpoint auf die while-schleife in der Funktion cat gesetzt: $ gdb cat (gdb) break 21 Reading in symbols for cat.cdone. Breakpoint 1 at 0x3c5c: cat.c:21. (gdb) run data Reading symbols from loaded filedone. Breakpoint 1, cat (fnm=0xbffff8d3 "data") at cat.c:21

7 21 while ((ch = getc(fp))!= EOF) fp war als lokale Variable eine Dateiverbindung vom "Typ" FILE*. (gdb) p fp $1 = (struct _iobuf *) 0x50c03f0 (gdb) p *fp $2 = { _cnt = 0, _ptr = 0x0, _base = 0x0, _bufsiz = 0, _flag = 1, _file = 3 \003, _smallbuf = 0 \000 } Man sieht, daß hier FILE* der Typ struct _iobuf* ist. Nun ist der interne Aufbau der I/O-Bufferung zu sehen. Der Name der Struktur und ihr Aufbau sind natürlich von Compiler zu Compiler verschieden (hier NeXT) print Mit step liest man nun ein Zeichen ein und sieht sich dann den Inhalt der Struktur neu an. (gdb) s 22 putchar(ch); (gdb) p ch $3 = 72 (gdb) p/c ch $4 = 72 H (gdb) p *fp $5 = { _cnt = 24, _ptr = 0x8c1a1 "ello World!\nHallo Welt!\n", _base = 0x8c1a0 "Hello World!\nHallo Welt!\n", _bufsiz = 8192, _flag = 9, _file = 3 \003, _smallbuf = 0 \000 } (gdb) s putchar(ch); (gdb) p/c ch $6 = 100 d (gdb) p *fp $7 = { _cnt = 14, _ptr = 0x8c1ab "!\nhallo Welt!\n", _base = 0x8c1a0 "Hello World!\nHallo Welt!\n", _bufsiz = 8192, _flag = 9, _file = 3 \003, _smallbuf = 0 \000 } Direkt hinter print kann ein / mit einer folgenden Formatanweisung stehen.

8 Erlaubte Formatanweisungen sind z.b. o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) und s(string) print print liefert pro Ausgabe eine korrespondierende Nummer wie $7. Diese Nummer darf man bei weiteren Aufrufen wieder verwenden. (gdb) s 20 Hello World! 22 putchar(ch); (gdb) p $7 $9 = { _cnt = 14, _ptr = 0x8c1ab "!\nhallo Welt!\n", _base = 0x8c1a0 "Hello World!\nHallo Welt!\n", _bufsiz = 8192, _flag = 9, _file = 3 \003, _smallbuf = 0 \000 } (gdb) p fp >_base+2 $10 = 0x8c1a2 "llo World!\nHallo Welt!\n" (gdb) p *(int *) $10 $11 = (gdb) p (int) * $10 $12 = 108 (gdb) p (char *) 0x8c1a2 $13 = 0x8c1a2 "llo World!\nHallo Welt!\n" Beliebige Arithmetik und Casten sind erlaubt. $ und $$ sind die beiden letzten Werte. $$n ist der n-te Wert vom Ende her gezählt. Man kann Ausdrücke angeben, die den Wert von Daten im laufenden Prozeß ändern. (gdb) p fp >_cnt=9 $26 = 9 (gdb) p *fp $27 = { _cnt = 9, _ptr = 0x8c1b5 "lt!\n", _base = 0x8c1a0 "Hello World!\nHallo Welt!\n", _bufsiz = 8192, _flag = 9, _file = 3 \003, _smallbuf = 0 \000 }

9 237. print Den Wert von Variablen setzt man normalerweise mit set. (gdb) set fp=0 Mit set kann man weiterhin eine Vielzahl von Einstellungen für den Debbuger setzen. Näheres zu set entnehmen Sie dem help-kommando call call call function(params) Mit call kann man in einem Programm gezielt Funktionen aufrufen. $ gdb cat (gdb) b main Breakpoint 1 at 0x80487f6: file cat.c, line 31. (gdb) r Starting program: /home/bernd/vorl/b98/code/debug/cat Breakpoint 1, main (argc=1, argv=0xbffff6d4) at cat.c:31 31 if (argc <= 1) (gdb) call cat("data") Hello World! Hallo Welt! (gdb) call tmpfile() $16 = (gdb) p * $16 $17 = 0 (gdb) p $16 $18 = (gdb) p *(FILE*)$16 No symbol "FILE" in current context. (gdb) p *(struct _iobuf *)$16 $19 = { _cnt = 0, _ptr = 0x0, _base = 0x0, _bufsiz = 0, _flag = 256, _file = 5 \005, _smallbuf = 0 \ Displays display, undisplay, info display, enable, disable display/fmt expr undisplay n info display disable display n enable display n Mit display wird der als Argument angegebene Ausdruck bei jedem Programmstop ausgegeben. $ gdb cat

10 (gdb) b main Breakpoint 1 at 0x80487f6: file cat.c, line 31. (gdb) b 35 Breakpoint 2 at 0x : file cat.c, line 35. (gdb) l for (n = 1; n < argc; ++ n) 35 cat(argv[n]); 36 (gdb) r data data Starting program: /home/bernd/vorl/b98/code/debug/cat data data Breakpoint 1, main (argc=4, argv=0xbffff6a8) at cat.c:31 31 if (argc <= 1) (gdb) display argc 1: argc = 4 (gdb) display n 2: n = 0 (gdb) display argv[n] 3: argv[n] = 0xbffff81c "/home/bernd/vorl/b98/code/debug/cat" (gdb) c Continuing. Breakpoint 2, main (argc=4, argv=0xbffff6a8) at cat.c:35 35 cat(argv[n]); 3: argv[n] = 0xbffff840 "data" 2: n = 1 1: argc = 4 (gdb) c Continuing. Hello World! Hallo Welt! Breakpoint 2, main (argc=4, argv=0xbffff6a8) at cat.c:35 35 cat(argv[n]); 3: argv[n] = 0xbffff845 " " 2: n = 2 1: argc = 4 (gdb) c Continuing. Hallo Hallo Breakpoint 2, main (argc=4, argv=0xbffff6a8) at cat.c:35 35 cat(argv[n]); 3: argv[n] = 0xbffff847 "data" 2: n = 3 1: argc = 4 (gdb) c Continuing. Hello World! Hallo Welt! Program exited normally.

11 info display zeigt eine Übersicht aller Displays. (gdb) info display Auto display expressions now in effect: Num Enb Expression 3: y argv[n] (cannot be evaluated in the current context) 2: y n (cannot be evaluated in the current context) 1: y argc (cannot be evaluated in the current context) Mit undisplay kann man Displays wieder löschen. disable kann Displays deaktivieren. enable kann deaktivierte Displays aktivieren. Beide Kommandos beziehen sich ohne Argumente auf alle Displays und mit einer Zahl als Argument auf den Display mit dieser Nummer. (gdb) undisplay 2 (gdb) info display Auto display expressions now in effect: Num Enb Expression 3: y argv[n] (cannot be evaluated in the current context) 1: y argc (cannot be evaluated in the current context) (gdb) disable display 3 (gdb) info display Auto display expressions now in effect: Num Enb Expression 3: n argv[n] (cannot be evaluated in the current context) 1: y argc (cannot be evaluated in the current context) 240. Verschiedenes quit quit quit beendet den Debugger. file file cmd Der Debugger kontrolliert ab nun das Programm cmd. signal signal n Setzt die Ausführung mit dem Eintreffen des Signals n fort. Dabei steht die Nummer 0 für kein Signal, also normale Weiterbearbeitung. tbreak tbreak [file:][n name] tbreak funktioniert wie break. Der Breakpoint gilt jedoch nur einmal.

12 ptype ptype typename Gibt die Definition des Typs typename aus. Das Argument typename kann ein einfacher Datentyp, ein durch typedef definierter Typ, "struct struct-tag", "union union-tag" oder "enum enum-tag" sein. (gdb) ptype struct _iobuf type = struct _iobuf { int _cnt; char *_ptr; char *_base; int _bufsiz; short int _flag; unsigned char _file; char _smallbuf; } (gdb) ptype size_t type = long unsigned int 241. Verschiedenes bt oder backtrace frame bt[n] backtrace[n] frame[n] bt oder backtrace geben den Aufruf-Stack bzw. die letzten n Elemente des Aufruf-Stacks aus. $ gdb cat (gdb) b cat Reading in symbols for cat.cdone. Breakpoint 1 at 0x3be6: cat.c:16. (gdb) r data Starting program: /export/home/bernd//code/debug/cat data Reading symbols from loaded filedone. Breakpoint 1, cat (fnm=0xbffff8d3 "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) bt #0 cat (fnm=0xbffff8d3 "data") at cat.c:16 #1 0x3e06 in main (argc=2, argv=0xbffff7f4) at cat.c:35 #2 0x3b1e in start () at crt0.c:144 (gdb) bt 1 #0 cat (fnm=0xbffff8d3 "data") at cat.c:16 (More stack frames follow) (gdb) frame ohne Argument zeigt den aktuellen Frame an. Mit Argument n wechselt man für Bewertungen in den Frame n. (gdb) frame #0 cat (fnm=0xbffff8d3 "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) p *argv

13 No symbol "argv" in current context. (gdb) frame 1 #1 0x3e06 in main (argc=2, argv=0xbffff7f4) at cat.c:35 35 cat(argv[n]); (gdb) p *argv $3 = 0xbffff8a8 "/export/home/bernd/vorl/b98/code/debug/cat" Wird der Prozeß fortgesetzt, so wird wieder in den aktuellen Frame gewechselt Verschiedenes Verwaltung von Breakpoints info breakpoints disable n delete n enable n Das Kommando info liefert eine Vielzahl von Informationen über den zu kontrollierenden Prozeß. Mit dem Argument breakpoints zeigt es alle Breakpoints und deren Zustände an. $ gdb cat (gdb) break main Reading in symbols for cat.cdone. Breakpoint 1 at 0x3dcd: cat.c:31. (gdb) break cat Breakpoint 2 at 0x3be6: cat.c:16. (gdb) break 28 Breakpoint 3 at 0x3dc0: cat.c:28. (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x00003dcd in main at cat.c:31 2 breakpoint keep y 0x00003be6 in cat at cat.c:16 3 breakpoint keep y 0x00003dc0 in main at cat.c:28 Die Kommandos enable, disable und delete aktivieren, deaktivieren und löschen Breakpoints. Mit einer Zahl als Argument bezieht sich das Kommando auf den Breakpoint mit dieser Nummer. Ohne Argument beziehen sie sich auf alle Breakpoints. (gdb) disable 2 (gdb) delete 3 (gdb) enable 1 (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x00003dcd in main at cat.c:31 2 breakpoint keep n 0x00003be6 in cat at cat.c:16 (gdb) info info args info liefert eine Vielzahl von Informationen über den zu kontrollierenden Prozeß. Den genauen Funktionsumfang entnehmen Sie bitte dem help-kommando.

14 243. Verschiedenes search search regexp search sucht ab der aktuellen Zeile nach dem regulären Ausdruck regexp. show show arg show liefert eine Vielzahl von Informationen über den Zustand des Debuggers. Den genauen Funktionsumfang entnehmen Sie bitte dem help-kommando. commands commands [n] commands sammelt Befehle, die beim Erreichen eines Breakpoints ausgeführt werden sollen. finish finish Setzt die Ausführung bis zum Ende der aktuellen Funktion oder bis zum nächsten Breakpoint fort. whatis whatis expr whatis zeigt den Datentyp eines Ausdrucks an. Dabei wird der Ausdruck nicht ausgewertet. (gdb) p fp $2 = (struct _iobuf *) 0x50c03f0 (gdb) whatis fp++ type = struct _iobuf * (gdb) p fp $3 = (struct _iobuf *) 0x50c03f0 (gdb) whatis (int) 2 + (double) 3 type = double 244. Verschiedenes define define cmdname Mit define kann man einen neuen Befehl für den Debugger definieren. (gdb) define lmain Type commands for definition of "lmain". End with a line saying just "end". >list main >end (gdb) lmain if (fp!= stdin) 25 fclose(fp);

15 26 } int main (int argc, char * argv[]) { 29 int n; if (argc <= 1) 32 cat(" "); (gdb) cd und pwd cd pwd Die Hilfe sagt alles. (gdb) help cd Set working directory to DIR for debugger and program being debugged. The change does not take effect for the program being debugged until the next time it is started. (gdb) help pwd Print working directory. This is used for your program as well Verschiedenes awatch, rwatch und watch awatch expr rwatch expr watch expr Diese Kommandos setzen Breakpoints auf den Zustand von Variablen (eigentlich Ausdrücken). Diese Watchpoints kann man sich mit info breakpoints bzw. info watchpoints ansehen und mit enable, disable und delete verwalten. watch setzt einen Watchpoint auf den als Argument angegebenen Ausdruck. Der Watchpoint stopt die Ausführung immer dann, wenn sich der Wert des Ausdrucks geändert hat. rwatch stopt, wenn der Wert des Ausdrucks gelesen wird. awatch stopt, wenn der Wert des Ausdrucks gelesen wird oder sich geändert hat. $ gdb cat (gdb) break cat Reading in symbols for cat.cdone. Breakpoint 1 at 0x3be6: cat.c:16. (gdb) r data data Starting program: /home/bernd//code/debug/cat data data Breakpoint 1, cat (fnm=0xbffff8cb "data") at cat.c:16 16 if (strcmp(fnm, " ") == 0) (gdb) watch fp Watchpoint 2: fp (gdb) delete 1 (gdb) c Continuing. Watchpoint 2: fp

16 Old value = (struct _iobuf *) 0xbffff7e4 New value = (struct _iobuf *) 0x50c03f0 0x3c3e in cat (fnm=0xbffff8cb "data") at cat.c:18 18 else if (! (fp = fopen(fnm, "r"))) (gdb) c Continuing. Hello World! Hallo Welt! Watchpoint 2 deleted because the program has left the block in which its expression is valid. 0x3dbd in cat (fnm=0x3 <Address 0x3 out of bounds>) at cat.c:26 26 } (gdb) attach und detach gdb cmd pid attach pid detach gdb cmd pid Der Debugger kann auch bereits laufende Prozesse analysieren. Dazu braucht man die Prozeß-ID des Prozesses und die Rechte, dem Prozeß Signale senden zu dürfen. attach bekommt als Argument eine Prozeß-ID. Damit versucht der Debugger den damit gewählten Prozeß zu kontrollieren. Die Datei von der das laufende Programm aus gestartet worden ist, kann über den Befehl file oder als einziges Argument beim Aufruf des Debuggers angegeben werden. detach löst die Verbindung des Debuggers zum Prozeß wieder. Der Prozeß läuft ganz normal weiter. Anstelle von attach kann die PID auch als zweites Argument beim Aufruf von gdb angegeben werden. Unter Linux wurde folgendes ausgeführt. $ cat /dev/zero & [1] 1224 $ ps axu fgrep cat bernd p0 S 13:56 0:02 cat /dev/zero bernd p0 S 13:56 0:00 fgrep cat $ gdb cat (gdb) attach 1224 Attaching to program `/home//debug/cat, process 1224 Reading symbols from /lib/libc.so.5done. Reading symbols from /lib/ld linux.so.1done. 0x40072db0 in write () (gdb) break 22 Breakpoint 1 at 0x : file cat.c, line 22. (gdb) c Continuing. Breakpoint 1, cat (fnm=0xbffff86e "/dev/zero") at cat.c:22 22 putchar(ch); (gdb)

17 246. Verschiedenes gdb und core-dateien gdb cmd core gdb kann auch mit einem core-dump (Speicherauszug) unterbrochene Prozesse nachträglich untersuchen. Beispiel debug/coretest.c Das Programm verhält sich wie ein echo-programm, außer wenn eines der Kommandozeilenargumente das Wort core ist. Dann bricht das Programm über abort(3) ab. int main(int argc, char * argv[]) { int i; } for(i=0; i<argc; i++) if(strcmp(argv[i], "core")) printf("%s ", argv[i]); else abort(); putchar( \n ); return 0; Bei einigen Systemen muß man erst das Schreiben von core-dateien erlauben. $ ulimit S c $ ulimit H c unlimited $ ulimit S c artemis debug 19 coretest core IOT trap (core dumped) artemis debug 20 ls l core rw r r 1 bernd inform Jul 9 11:05 core artemis debug 21 gdb coretest core Reading symbols from /home/bernd//code/debug/coretestdone. 0x5078ae0 in?? () (gdb) bt Reading in symbols for coretest.cdone. Reading in symbols for crt0.cdone. #0 0x5078ae0 in?? () #1 0x503febd in?? () #2 0x3de9 in main (argc=2, argv=0xbffff80c) at coretest.c:20 #3 0x3cce in start () at crt0.c:144 (gdb) frame 2 #2 0x3de9 in main (argc=2, argv=0xbffff80c) at coretest.c:20 20 abort(); (gdb) p *argv $1 = 0xbffff8c4 "coretest" (gdb) p *(argv+1) $2 = 0xbffff8cd "core" (gdb)

18 247. xxgdb xxgdb Die Arbeit mit dem Debugger auf der Kommandozeile ist relativ mühsam, wenn man sich an grafische Oberflächen und deren Applikationen gewöhnt hat. xxgdb ist ein grafischer Aufsatz auf den gdb für die Oberfläche X. In dem oberen Ausschnitt wird die aktuelle Zeile des Programmtexts dargestellt. Der mittlere Ausschnitt enthält für einige gdb-kommandos Knöpfe. Im unteren Teile kann man Befehle für den Debugger eingeben bzw. die Ausgabe von Kommandos betrachten. $ xxgdb cat

19 248. ddd ddd Auch ddd setzt auf gdb auf. Allerdings ist die Oberfläche wesentlich komfortabler und der Befehlsumfang mächtiger. In dem Beispiel wird das Listen-Programm liste aus dem Katalog struct untersucht.

20

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu gdb: debugging code In der Vorlesung hatte ich Teile von http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu und ein eigenes Beispiel diskutiert. Ein Debugger soll helfen Fehler im Programm, die sich

Mehr

Teil I Debuggen mit gdb

Teil I Debuggen mit gdb Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Wie man eigene Programme erstellt

Wie man eigene Programme erstellt Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Objektorientiertes Programmieren mit Suse Linux

Objektorientiertes Programmieren mit Suse Linux Objektorientiertes Programmieren mit Suse Linux Zum Programmieren werden 2 Komponenten benötigt: 1. einen Editor zur Eingabe des Quellcodes 2. einen Compiler, der den Quellcode in die Maschinensprache

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace. Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

GSM Scanner Bedienungsanleitung

GSM Scanner Bedienungsanleitung GSM Scanner Bedienungsanleitung Inhaltsverzeichnis 1. Funktion der Tasten... 3 2. Erste Schritte... 4 2.1. Einschalten -----------------------------------------------------------------------------------

Mehr

KIP Druckerstatus Benutzerhandbuch KIP Druckerstatus Installations- und Benutzerhandbuch

KIP Druckerstatus Benutzerhandbuch KIP Druckerstatus Installations- und Benutzerhandbuch KIP Druckerstatus Installations- und Benutzerhandbuch - 1 - Inhalt 1 Einführung... 3 2 Installation und Einrichtung... 4 3 Funktionalität des KIP Druckerstatus... 6 4 Benutzung des KIP Druckerstatus...

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Step by Step Softwareverteilung unter Novell. von Christian Bartl Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software Artologik EZ-Equip Plug-in für EZbooking version 3.2 Artologik EZbooking und EZ-Equip EZbooking, Ihre webbasierte Software zum Reservieren von Räumen und Objekten, kann nun durch die Ergänzung um ein oder

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

Installation & Anwendung Xdebug für Eclipse

Installation & Anwendung Xdebug für Eclipse Wetterprognosen Angewandte Meteorologie Luftreinhaltung Geoinformatik Fabrikstrasse 14, CH-3012 Bern Tel. +41 (0)31-307 26 26 Fax +41 (0)31-307 26 10 e-mail: office@meteotest.ch www.meteotest.ch Bern,

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Anleitung für die Verwendung des CIP Pools von eigenen Rechner

Anleitung für die Verwendung des CIP Pools von eigenen Rechner Anleitung für die Verwendung des CIP Pools von eigenen Rechner Jan Seyler 06.11.2010 Contents 1 Steuerung des PCs inkl. Nutzung von MATLAB 1 1.1 Voraussetzungen................................ 1 1.2 Einwählen

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Windows 7 Winbuilder USB Stick

Windows 7 Winbuilder USB Stick Windows 7 Winbuilder USB Stick Benötigt wird das Programm: Winbuilder: http://www.mediafire.com/?qqch6hrqpbem8ha Windows 7 DVD Der Download wird in Form einer gepackten Datei (7z) angeboten. Extrahieren

Mehr

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten. 1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

https://portal.microsoftonline.com

https://portal.microsoftonline.com Sie haben nun Office über Office365 bezogen. Ihr Account wird in Kürze in dem Office365 Portal angelegt. Anschließend können Sie, wie unten beschrieben, die Software beziehen. Congratulations, you have

Mehr

Anzeige von eingescannten Rechnungen

Anzeige von eingescannten Rechnungen Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Informatik Grundlagen, WS04, Seminar 13

Informatik Grundlagen, WS04, Seminar 13 Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt

Mehr

NEUES BEI BUSINESSLINE WINDOWS

NEUES BEI BUSINESSLINE WINDOWS Fon: 0761-400 26 26 Schwarzwaldstr. 132 Fax: 0761-400 26 27 rueckertsoftware@arcor.de 79102 Freiburg www.rueckert-software.de Beratung Software Schulung Hardware Support Schwarzwaldstrasse 132 79102 Freiburg

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Beispiel(unten ist der Spielfeldrand):

Beispiel(unten ist der Spielfeldrand): Anleitung Side by Side ist ein Puzzle mit einfachen Regeln, das in einem 6x6 (oder größerem) Gitter gespielt wird. Ziel des Spieles ist es, die leeren Kästchen mit den Zahlen 1, 2, 3, 4 oder einem X zu

Mehr

Übung zur Vorlesung Programmieren in C

Übung zur Vorlesung Programmieren in C Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de

Mehr

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode? Kurzanleitung Passwortlevel 3, Erhalt und Handhabung Inhaltsverzeichnis 1 Warum Passwortlevel 3...1 2 Gültigkeitsbereich...1 3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?...1 4 Eingabe

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Kontakte Kontakte Seite 1 Kontakte Seite 2 Inhaltsverzeichnis 1. ALLGEMEINE INFORMATIONEN ZU DEN KONTAKTEN 4 2. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 3. STAMMDATEN FÜR DIE KONTAKTE 4 4. ARBEITEN

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

I.1 Die Parrot Assemblersprache

I.1 Die Parrot Assemblersprache I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen

Mehr

10.6 Programmier-Exits für Workitems

10.6 Programmier-Exits für Workitems 10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene

Mehr

Greencardgratis.de. Bildbearbeitung Do-It-Yourself (Ver.2008) 1. Gehen Sie auf http://www.picnik.com/ Klicken Sie dort auf Get started now!

Greencardgratis.de. Bildbearbeitung Do-It-Yourself (Ver.2008) 1. Gehen Sie auf http://www.picnik.com/ Klicken Sie dort auf Get started now! Greencardgratis.de Bildbearbeitung Do-It-Yourself (Ver.2008) Dieses Dokument ist rechtlich geschützt. Die unautorisierte Weitergabe oder Verwendung ist nicht erlaubt. Das Dokument darf ausschließlich von

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Softwarelizenzen und Open Source

Softwarelizenzen und Open Source 02. Februar 2016 Softwarelizenzen und Open Source Juristisches IT-Projektmanagement Vortrag von Michael Woborschil Inhalt 1. Einführung 2. Lizenzen allgemein 3. Open Source 4. Copyleft 4. Beispiele für

Mehr

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop

Mehr

Wie verbindet man Nokia 6600 mit Oxygen Phone Manager II for Symbian OS phones ( http://www.opm-2.com/symbian/ )

Wie verbindet man Nokia 6600 mit Oxygen Phone Manager II for Symbian OS phones ( http://www.opm-2.com/symbian/ ) Wie verbindet man Nokia 6600 mit Oxygen Phone Manager II for Symbian OS phones ( http://www.opm-2.com/symbian/ ) Falls Sie Ihr Telefon mit dem Rechner paarsweise schon verbunden haben, bitte sehen Sie

Mehr

Nützliche Tipps für Einsteiger

Nützliche Tipps für Einsteiger Nützliche Tipps für Einsteiger Zusätzliche Browsertabs - effizienter Arbeiten Ein nützlicher Tipp für das Arbeiten mit easysys ist das Öffnen mehrerer Browsertabs. Dies kann Ihnen einige Mausklicks ersparen.

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Visual Basic Express Debugging

Visual Basic Express Debugging Inhalt Dokument Beschreibung... 1 Projekt vorbereiten... 1 Verknüpfung zu Autocad/ProStructures einstellen... 2 Debugging... 4 Autocad/ProSteel Beispiel... 5 Dokument Beschreibung Debuggen nennt man das

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Stellvertretenden Genehmiger verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1. Grundlegende Informationen 3 2.1 Aktivieren eines Stellvertretenden Genehmigers 4 2.2 Deaktivieren eines Stellvertretenden Genehmigers 11 2 1. Grundlegende Informationen

Mehr

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café SSL VPN verwenden mit nicht-lonza PCs 1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café Für das Arbeiten von zu Hause oder aus einem Internet Café können Sie Ihren Browser

Mehr

Stepperfocuser 2.0 mit Bootloader

Stepperfocuser 2.0 mit Bootloader Stepperfocuser 2.0 mit Bootloader Info Für den Stepperfocuser 2.0 gibt es einen Bootloader. Dieser ermöglicht es, die Firmware zu aktualisieren ohne dass man ein spezielles Programmiergerät benötigt. Die

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder CA Übung 30.01.2006 Hallo zusammen! Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder Adrian Schüpbach: scadrian@student.ethz.ch Christian Fischlin: cfischli@student.ethz.ch

Mehr

Luis Kornblueh. May 22, 2014

Luis Kornblueh. May 22, 2014 Einführung in die Bash Luis Kornblueh KlosterCluster Team 2013/2014, Klosterschule May 22, 2014 1 / 17 Inhaltsverzeichnis Einführung in das Scripting Einfache Beispiele Kommandos ersetzen Bedingungen Tests

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

1. Aktionen-Palette durch Fenster /Aktionen ALT+F9 öffnen. 2. Anlegen eines neuen Set über Neues Set... (über das kleine Dreieck zu erreichen) Tipp: Aktionen (c) 2005 Thomas Stölting, Stand: 25.4. 2005 In Photoshop werden häufig immer wieder die gleichen Befehlssequenzen benötigt. Um sie nicht jedesmal manuell neu eingeben zu müssen, können diese

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

BEDIENUNG ABADISCOVER

BEDIENUNG ABADISCOVER BEDIENUNG ABADISCOVER Juni 2005 / EMO v.2005.1 Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen, oder Teilen

Mehr

Installation mit Lizenz-Server verbinden

Installation mit Lizenz-Server verbinden Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version 1.0 Voraussetzungen für diesen Workshop 1. Die M-Quest Suite 2005-M oder höher ist auf diesem Rechner installiert 2. Der M-Lock 2005 Lizenzserver

Mehr

Installationsleitfaden kabelsafe backup professional unter MS Windows

Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsanleitung und Schnelleinstieg kabelsafe backup professional (kabelnet-obm) unter MS Windows Als PDF herunterladen Diese

Mehr

Hochschule München, FK 03 FA SS 2012. Ingenieurinformatik

Hochschule München, FK 03 FA SS 2012. Ingenieurinformatik Hochschule München, FK 03 FA SS 2012 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

PCE-USM RS-232 - USB Logger

PCE-USM RS-232 - USB Logger PCE-USM RS-232 - USB Logger Der Logger ermöglicht die Sendedaten der RS-232 Schnittstelle als TXT Format in einen oder mehreren Ordnern mit Zeit und Datum zu speichern. Der Logger kann sowohl Daten empfangen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Werkzeuge der Informatik UNIX

Werkzeuge der Informatik UNIX Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de) Institut für Informatik 17. Dezember

Mehr

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70 Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4

Mehr

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden Installation von Druckern auf dem ZOVAS-Notebook Bei der Installation eines Druckers muss grundsätzlich unterschieden werden, ob der Drucker direkt am Notebook angeschlossen ist oder ob ein Drucker verwendet

Mehr

1. EINLEITUNG 2. GLOBALE GRUPPEN. 2.1. Globale Gruppen anlegen

1. EINLEITUNG 2. GLOBALE GRUPPEN. 2.1. Globale Gruppen anlegen GLOBALE GRUPPEN 1. EINLEITUNG Globale Gruppen sind system- oder kategorieweite Gruppen von Nutzern in einem Moodlesystem. Wenn jede Klasse einer Schule in eine globale Gruppe aufgenommen wird, dann kann

Mehr

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Ein Rechner Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Rechner sind überall Ihr Rechner

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Ihre Lizenz ändern. Stand 01/2015

Ihre Lizenz ändern. Stand 01/2015 Ihre Lizenz ändern Stand 01/2015 EXACT ONLINE 2 Inhaltsverzeichnis Lizenzverwaltung aufrufen... 3 Hinzufügen... 4 Registrierung ändern Downgrade / Upgrade... 5 Beenden teilweise / komplette Kündigung...

Mehr

GSM Scanner Bedienungsanleitung. GSM - Scanner. Bedienungsanleitung. Seite 1 von 10

GSM Scanner Bedienungsanleitung. GSM - Scanner. Bedienungsanleitung. Seite 1 von 10 GSM - Scanner Bedienungsanleitung Seite 1 von 10 Dokumenten Information Revision Date Changes Name Function 1.0 13.09.12 vorläufige Version MB User Manual Copyright information Copyright UNITRONIC AG Alle

Mehr

Anleitung zur Erstellung einer Gefährdungsbeurteilung

Anleitung zur Erstellung einer Gefährdungsbeurteilung Anleitung zur Erstellung einer Gefährdungsbeurteilung 1 Vorbereiten der Gefährdungsbeurteilung 1.1 Richten Sie mit Hilfe des Windows-Explorers (oder des Windows-Arbeitsplatzes) einen neuen Ordner ein,

Mehr

Internet online Update (Mozilla Firefox)

Internet online Update (Mozilla Firefox) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Mozilla Firefox und gehen auf unsere Internetseite:

Mehr

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle Allgemeine Informationen Homepage: http://www.up4dar.de/ Mailingliste: http://groups.yahoo.com/group/up4dar GitHub Repository: https://github.com/dl1bff

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Abwesenheitsnotiz im Exchange Server 2010

Abwesenheitsnotiz im Exchange Server 2010 Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen

Mehr

Installation von SAS 9.1.3 unter Windows XP

Installation von SAS 9.1.3 unter Windows XP Installation von SAS 9.1.3 unter Windows XP Als erstes werden Sie aufgefordert, die Setup-Sprache auszuwählen. In den meisten Fällen wird eine deutschsprachige Installation bevorzugt werden. Bestätigen

Mehr

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de GEVITAS-Sync Bedienungsanleitung Stand: 26.05.2011 Copyright 2011 by GEVITAS GmbH www.gevitas.de Inhalt 1. Einleitung... 3 1.1. Installation... 3 1.2. Zugriffsrechte... 3 1.3. Starten... 4 1.4. Die Menü-Leiste...

Mehr