|
From: <sv...@va...> - 2005-08-09 00:52:13
|
Author: sewardj
Date: 2005-08-08 20:47:43 +0100 (Mon, 08 Aug 2005)
New Revision: 4348
Log:
Begin GCing after instituting static linking: get rid of stuff
pertaining to the padding file. Also get rid of #include <dlfcn.h>,
hurrah.
Modified:
branches/ASPACEM/coregrind/m_main.c
Modified: branches/ASPACEM/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_main.c 2005-08-08 18:32:54 UTC (rev 4347=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 19:47:43 UTC (rev 4348=
)
@@ -61,7 +61,7 @@
#include "pub_core_ume.h"
=20
#include <dirent.h>
-#include <dlfcn.h>
+//#include <dlfcn.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1184,71 +1184,7 @@
VG_(brk_base) =3D VG_(brk_limit) =3D info->brkbase;
}
=20
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/*=3D=3D=3D Address space unpadding =
=3D=3D=3D*/
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
-typedef struct {
- char* killpad_start;
- char* killpad_end;
- struct vki_stat* killpad_padstat;
-} killpad_extra;
-
-static int killpad(char *segstart, char *segend, const char *perm, off_t=
off,=20
- int maj, int min, int ino, void* ex)
-{
- killpad_extra* extra =3D ex;
- void *b, *e;
- SysRes res;
-
- vg_assert(NULL !=3D extra->killpad_padstat);
-
- if (extra->killpad_padstat->st_dev !=3D makedev(maj, min) ||=20
- extra->killpad_padstat->st_ino !=3D ino)
- return 1;
- =20
- if (segend <=3D extra->killpad_start || segstart >=3D extra->killpad_=
end)
- return 1;
- =20
- if (segstart <=3D extra->killpad_start)
- b =3D extra->killpad_start;
- else
- b =3D segstart;
- =20
- if (segend >=3D extra->killpad_end)
- e =3D extra->killpad_end;
- else
- e =3D segend;
- =20
- res =3D VG_(munmap_native)(b, (char *)e-(char *)b);
- vg_assert(!res.isError);
- =20
- return 1;
-}
-
-// Remove padding of 'padfile' from a range of address space.
-static void as_unpad(void *start, void *end, int padfile)
-{
- static struct vki_stat padstat;
- killpad_extra extra;
- int res;
-
- vg_assert(padfile >=3D 0);
- =20
- res =3D VG_(fstat)(padfile, &padstat);
- vg_assert(0 =3D=3D res);
- extra.killpad_padstat =3D &padstat;
- extra.killpad_start =3D start;
- extra.killpad_end =3D end;
- VG_(foreach_map)(killpad, &extra);
-}
-
-static void as_closepadfile(int padfile)
-{
- int res =3D close(padfile);
- vg_assert(0 =3D=3D res);
-}
-
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/*=3D=3D=3D Command-line: variables, processing, etc =
=3D=3D=3D*/
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
@@ -2431,13 +2367,13 @@
}
=20
=20
-int main(int argc, char **argv, char **envp)
+Int main(Int argc, HChar **argv, HChar **envp)
{
- char **cl_argv;
- const char *tool =3D "memcheck"; // default to Memcheck
- const char *exec =3D NULL;
- char *preload; /* tool-specific LD_PRELOAD .so */
- char **env;
+ HChar **cl_argv;
+ const HChar *tool =3D "memcheck"; // default to Memcheck
+ const HChar *exec =3D NULL;
+ HChar *preload; /* tool-specific LD_PRELOAD .so */
+ HChar **env;
Int need_help =3D 0; // 0 =3D no, 1 =3D --help, 2 =3D --help-deb=
ug
struct exeinfo info;
ToolInfo *toolinfo =3D NULL;
@@ -2445,7 +2381,7 @@
Addr sp_at_startup; /* client's SP at the point we gained control=
. */
UInt * client_auxv;
struct vki_rlimit zero =3D { 0, 0 };
- Int padfile, loglevel, i;
+ Int loglevel, i;
=20
//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
// Nb: startup is complex. Prerequisites are shown at every step.
|