Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Electric fence - Wikipedia, wolna encyklopedia

Electric fence

Z Wikipedii

Electric fence - biblioteka dzielona służąca do debugowania dostępu do pamięci w programach bez konieczności ich rekompilacji.

Dostępy poza zaalokowany obszar pamięci często powodują dziwne błędy – program zamiast zakończyć działanie nadpisuje zawartość innej zmiennej, i trudno jest zidentyfikować źródło problemu. Electric fence każdą alokacje umieszcza pod koniec (lub na początku) sprzętowej strony pamięci, tak że każde wykroczenie za (odpowiednio przed) zaalokowany obszar spowoduje wygenerowanie wyjątku przez procesor. Ponieważ strony pamięci (przynajmniej na procesorach rodziny x86) muszą mieć rozmiar będący wielokrotnością 4096 bajtów, nie ma możliwości ochrony przed oboma tymi przypadkami jednocześnie, na szczęście jednak po włączeniu electric fence przekroczenia w drugą stronę nadpisywać będą bezużyteczne bajty, nie inne zmienne.

Electric fence zajmuje się głównie czytaniem i pisaniem kilka bajtów poza zaalokowanym obszarem, nie zajmuje się innymi rodzajami błędnego dostępu.

Weźmy prosty program w C (język programowania) z błędem off by one:

#include <stdlib.h>
#define SIZE 100

int main()
{
    int foo[SIZE];
    int i;

    foo = malloc (sizeof(int) * SIZE);
    for(i=0; i<=SIZE; ++i)
        foo[i] = 0;

    return 0;
}

Chociaż program ma błąd, prawdopodobnie uruchomi się prawidłowo, ponieważ malloc alokuje zwykle kilka bajtów więcej niż jest to żądane. Sam gdb nic nie znajduje, jednak gdb w połączeniu z electric fence powoduje otrzymanie sygnału i możemy sprawdzić co spowodowało błąd. (komenda gdb efence pojawi się dopiero po skopiowaniu do pliku .gdbinit odpowiedniego fragmentu rozpowszechnianego razem z electric fence).

$ gdb ./foo
GNU gdb 6.1-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or 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.
This GDB was configured as "i386-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) r
Starting program: /home/taw/foo

Program exited normally.
(gdb) efence
Enabled Electric Fence
(gdb) r
Starting program: /home/taw/foo
[Thread debugging using libthread_db enabled]
[New Thread 1073830880 (LWP 3227)]

  Electric Fence 2.1 Copyright (C) 1987-1998 Bruce Perens.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1073830880 (LWP 3227)]
0x0804839f in main () at foo.c:11
11              foo[i] = 0;
(gdb) p i
$1 = 100

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com