Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Revision [3153]

Last edited on 2017-10-22 16:55:47 by CamilDemetrescu
Additions:
%%(c;.gdbinit)


Revision [1997]

Edited on 2016-10-22 15:13:37 by CamilDemetrescu
Additions:
~- ##cont##: completa l'esecuzione del programma
Deletions:
~- ##cont##: esegue il resto del programma


Revision [1996]

Edited on 2016-10-22 13:57:46 by CamilDemetrescu
Additions:
Prima di iniziare l'esercitazione, creare un file con nome "##.gdbinit##" nella directory ##/home/biar## (nella VM BIAR) con il seguente contenuto:
Deletions:
Prima di iniziare l'esercitazione, creare un file ##.gdbinit## nella directory ##/home/biar## (nella VM BIAR) con il seguente contenuto:


Revision [1985]

Edited on 2016-10-21 15:03:40 by CamilDemetrescu
Additions:
~- ##i r reg1 reg2 ...##: mostra il contenuto dei registri ##reg1##, ##reg2##, ecc, sia in base 16 che in base 10. Esempio: ##i r $eax $ecx##.
Deletions:
~- ##i r reg##: mostra il contenuto


Revision [1984]

Edited on 2016-10-21 15:00:25 by CamilDemetrescu
Additions:
che consente di dare il comando ##go## per fare il debugging di un programma C/IA32. Per debuggare un programma ##mioprog##, dare ##gdb ./mioprog## e poi il comando ##go##. Riepilogo dei comandi:
~- ##go##: esegue uno script che lancia il debugging del programma e si ferma sulla prima istruzione del main
~- ##step## (oppure s): esegue una singola istruzione, entrando nelle funzioni chiamate
~- ##next## (oppure n): esegue una singola istruzione, considerando le chiamate a funzione come singole istruzioni
~- ##finish##: completa l'esecuzione della funzione corrente
~- ##cont##: esegue il resto del programma
~- ##x/d addr##: mostra il contenuto dell'int all'indirizzo addr. Esempio: ##x/d $esp + 4## mostra l'intero all'indirizzo ##4(%esp)##.
~- ##i r reg##: mostra il contenuto
Deletions:
che consente di dare il comando ##go## per fare il debugging di un programma C/IA32. Per debuggare un programma ##mioprog##, dare ##gdb ./mioprog## e poi il comando ##go##.


Revision [1983]

Edited on 2016-10-21 14:21:45 by CamilDemetrescu
Additions:
Prima di iniziare l'esercitazione, creare un file ##.gdbinit## nella directory ##/home/biar## (nella VM BIAR) con il seguente contenuto:
che consente di dare il comando ##go## per fare il debugging di un programma C/IA32. Per debuggare un programma ##mioprog##, dare ##gdb ./mioprog## e poi il comando ##go##.
Deletions:
Prima di iniziare l'esercitazione, creare un file ##.gdbinit## nella directory ##/home/biar## con il seguente contenuto:
che consente di dare il comando ##go## per fare il debugging di un programma C/IA32.


Revision [1982]

Edited on 2016-10-21 14:15:02 by CamilDemetrescu
Additions:
==Preliminari==
Prima di iniziare l'esercitazione, creare un file ##.gdbinit## nella directory ##/home/biar## con il seguente contenuto:
define go
start
layout src
layout regs
focus cmd
end
che consente di dare il comando ##go## per fare il debugging di un programma C/IA32.
==Osservazione sulle istruzioni IA32==
Si tenga presente che:
~- non è possibile usare due operandi memoria: ad esempio ##cmpb (%eax), (%ecx)## è illegale.
~- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpl %eax, $0## è illegale.
Deletions:
** Osservazione. ** si tenga presente che:
- non è possibile usare due operandi memoria: ad esempio ##cmpb (%eax), (%ecx)## è illegale.
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpl %eax, $0## è illegale.


Revision [1981]

Edited on 2016-10-20 16:26:03 by EmilioCoppa
Additions:
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpl %eax, $0## è illegale.
Deletions:
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpl (%eax), $0## è illegale.


Revision [1980]

Edited on 2016-10-20 16:25:42 by EmilioCoppa
Additions:
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpl (%eax), $0## è illegale.
Deletions:
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpb %eax, $0## è illegale.


Revision [1979]

Edited on 2016-10-20 16:25:23 by EmilioCoppa
Additions:
** Osservazione. ** si tenga presente che:
- non è possibile usare due operandi memoria: ad esempio ##cmpb (%eax), (%ecx)## è illegale.
- non è possibile usare un operando immediato per la destinazione: ad esempio ##cmpb %eax, $0## è illegale.
Deletions:
Si tenga presente che non è possibile usare due operandi memoria: ad esempio ##cmpb (%eax), (%ecx)## è illegale. Testare il funzionamento della funzione scritta con il seguente programma di prova:


Revision [1964]

Edited on 2016-10-19 23:07:50 by CamilDemetrescu
Additions:
**Nota bene:** compilare a 32 bit con ##gcc -m32 -g## (##gcc -m32 -g es1-main.c es1.s -o es1##).
**Nota bene:** compilare a 32 bit con ##gcc -m32 -g##.
**Nota bene:** compilare a 32 bit con ##gcc -m32 -g##.
**Nota bene:** compilare a 32 bit con ##gcc -m32 -g##.
Deletions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc -m32 es1-main.c es1.s -o es1##).
**Nota bene:** compilare a 32 bit con ##gcc -m32##.
**Nota bene:** compilare a 32 bit con ##gcc -m32##.
**Nota bene:** compilare a 32 bit con ##gcc -m32##.


Revision [1963]

Edited on 2016-10-19 23:07:04 by CamilDemetrescu
Additions:
int res, a=20, b=10;
res = max(&a,&b);
printf("max(&a,&b)=%-3d [a=%-3d, b=%-3d]\n", res, a, b);
a = -10; b = 1;
res = max(&a,&b);
printf("max(&a,&b)=%-3d [a=%-3d, b=%-3d]\n", res, a, b);
Deletions:
int res, xx=20, yy=10;
res = max(&xx,&yy);
printf("max(&xx,&yy)=%-3d [xx=%-3d, yy=%-3d]\n", res, xx, yy);
xx = -10; yy = 1;
res = max(&xx,&yy);
printf("max(&xx,&yy)=%-3d [xx=%-3d, yy=%-3d]\n", res, xx, yy);


Revision [1959]

Edited on 2016-10-19 19:26:21 by CamilDemetrescu
Additions:
===Esercitazione 2 - 21 ottobre 2016 (120 min)===
Deletions:
===Esercitazione 2 - 21 ottobre 2016 (150 min)===


Revision [1958]

Edited on 2016-10-19 19:25:36 by CamilDemetrescu
Additions:
res = streq("", "");
Deletions:
res = streq(" ", " ");


Revision [1957]

Edited on 2016-10-18 23:16:06 by DanieleDelia
Deletions:
TBA
""""


Revision [1955]

Edited on 2016-10-18 21:34:13 by CamilDemetrescu
Additions:
res = streq(" ", " ");
Deletions:
res = streq("", "");


Revision [1954]

Edited on 2016-10-18 21:33:21 by CamilDemetrescu
Additions:

TBA

""""


Revision [1940]

The oldest known version of this page was created on 2016-10-18 00:03:12 by DanieleDelia
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0472 seconds