225. gdb der Gnu Debugger
|
|
- Valentin Hafner
- vor 8 Jahren
- Abrufe
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 Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
Mehrhttp://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
MehrTeil 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
MehrFunktionen 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
MehrBinä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
MehrWie 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
MehrDas 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
MehrObjektorientiertes 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
MehrEinfü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).
MehrErwin 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
MehrEinfü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
MehrStarten 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
MehrModellierung 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; {
MehrDeklarationen 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.
Mehr5 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
MehrGSM Scanner Bedienungsanleitung
GSM Scanner Bedienungsanleitung Inhaltsverzeichnis 1. Funktion der Tasten... 3 2. Erste Schritte... 4 2.1. Einschalten -----------------------------------------------------------------------------------
MehrKIP 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...
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrStep 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
MehrProgrammiersprachen 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
MehrErweiterung 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
MehrHandbuch. 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
MehrEinfü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.
MehrInstallation & 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,
MehrLinux 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,
MehrKlausur 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)
MehrAnleitung 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
MehrProgrammierung 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/
MehrDaten-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.
MehrC++ 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()
MehrOutlook. 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
MehrUnterprogramme. 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
MehrWindows 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
Mehr1 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
MehrLehrer: 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
MehrGEONET 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
MehrMORE 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
Mehrhttps://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
MehrAnzeige 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
MehrHandbuch. 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...
MehrDokumentation 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
MehrInformatik 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
MehrNEUES 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
MehrZä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 --
MehrProgrammieren 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;
MehrBeispiel(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 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
MehrDownloadfehler 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
MehrAuktionen 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
Mehr3 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
MehrObjektbasierte 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
MehrKontakte 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
MehrProfessionelle 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
MehrI.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
Mehr10.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
MehrGreencardgratis.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
MehrWindows. 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
MehrSoftwarelizenzen 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
MehrMPI-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
MehrWie 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
MehrNü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.
MehrProgrammieren 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
MehrVisual 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
MehrMatrix42. 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
MehrStellvertretenden 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
MehrAnton 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
MehrAGROPLUS 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
Mehr1 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
Mehr1. 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
MehrStepperfocuser 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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrWie 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,
MehrCA Ü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
MehrLuis 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
MehrDatenbanken 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,
Mehr1. 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
Mehr2A 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
MehrBEDIENUNG 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
MehrInstallation 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
MehrInstallationsleitfaden 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
MehrHochschule 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
MehrObjektorientierte 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
MehrMind 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
MehrPCE-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
MehrAlgorithmen 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)
MehrWerkzeuge 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
MehrThermoguard. 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
MehrInstallation 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
Mehr1. 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
MehrProgrammieren 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
MehrSysteme 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
MehrIhre 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...
MehrGSM 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
MehrAnleitung 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,
MehrInternet 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:
MehrUP4DAR 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
MehrDie 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
MehrAbwesenheitsnotiz 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
MehrInstallation 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
MehrBedienungsanleitung. 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