Set up go function pointer table
[akaros.git] / user / electric-fence / README.md
1 electric-fence
2 ==============
3 This is Electric Fence 2.2 — 25-Sep-2014
4
5 Electric Fence is a different kind of malloc() debugger. It uses the virtual
6 memory hardware of your system to detect when software overruns the boundaries
7 of a malloc() buffer. It will also detect any accesses of memory that has
8 been released by free(). Because it uses the VM hardware for detection,
9 Electric Fence stops your program on the first instruction that causes
10 a bounds violation. It's then trivial to use a debugger to display the
11 offending statement.
12
13 This version will run on:
14
15         BSD and OS/X
16
17         Linux kernel version 1.1.83 and above. Earlier kernels have problems
18         with the memory protection implementation.
19
20         All System V Revision 4 platforms (and possibly earlier revisions)
21         including:
22                 Every 386 System V I've heard of.
23                 Solaris 2.x
24                 SGI IRIX 5.0 (but not 4.x)
25
26         IBM AIX on the RS/6000.
27
28         SunOS 4.X (using an ANSI C compiler and probably static linking).
29
30         HP/UX 9.01, and possibly earlier versions.
31
32         OSF 1.3 (and possibly earlier versions) on a DECalpha.
33
34 On some of these platforms, you'll have to uncomment lines in the Makefile
35 that apply to your particular system, though it would be better if someone
36 added a better build-system so that this was not necessary.
37
38 If you test Electric Fence on a platform not mentioned here, please send me a
39 report.
40
41 It will probably port to any ANSI/POSIX system that provides mmap(), and
42 mprotect(), as long as mprotect() has the capability to turn off all access
43 to a memory page, and mmap() can use /dev/zero or the MAP_ANONYMOUS flag
44 to create virtual memory pages.
45
46 Complete information on the use of Electric Fence is in the manual page
47 libefence.3 .  You can read it with "man ./libefence.3".