You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
(13) |
3
(29) |
|
4
(18) |
5
(12) |
6
(12) |
7
(22) |
8
(9) |
9
(14) |
10
(6) |
|
11
|
12
|
13
(1) |
14
(5) |
15
(11) |
16
(7) |
17
(5) |
|
18
(1) |
19
(8) |
20
(7) |
21
(12) |
22
(5) |
23
(17) |
24
(6) |
|
25
(27) |
26
(17) |
27
(2) |
28
(10) |
29
(3) |
30
(8) |
31
(20) |
|
From: Jeremy F. <je...@go...> - 2004-01-04 23:55:14
|
On Sat, 2004-01-03 at 17:57, Eyal Lebedinsky wrote: > Jeremy Fitzhardinge wrote: > > Um. It would be nice if you could give us a lot more detail - like the > > actual error message it generated, and other debugging stuff it probably > > printed. And what do you mean by "spawn"? There's no library function > > or syscall called that. Do you mean system? execve? > > OK, I now have these logs. First a good run of a program 'ssaexec' which > simply spawn a child with the same arguments as itself. In real life it > is > used as a wrapper for redirecting stdout/err and such. OK, sync to CVS and try again. I just fixed a bug which would cause child Valgrinds to die with a SEGV. (Though it would have only affected CVS HEAD; 2.1.0 should have been OK.) J |
|
From: Jeremy F. <je...@go...> - 2004-01-04 23:53:29
|
CVS commit by fitzhardinge:
Fix problem with trace-children=yes when using a tool which replaces
malloc. The problem was that LD_PRELOAD was being left set with
our replacement .so files, which meant they were being applied to
stage1/stage2. This caused malloc to fail and a subsequent SIGSEGV.
This change unconditionally removes all of Valgrind's special environment
before each execve, since it will be replaced as needed by the child
Valgrind.
M +7 -3 vg_syscalls.c 1.75
--- valgrind/coregrind/vg_syscalls.c #1.74:1.75
@@ -1768,7 +1768,9 @@ PRE(execve)
VG_(nuke_all_threads_except)( VG_INVALID_THREADID );
- if (!VG_(clo_trace_children)) {
+ {
/* Make the LD_LIBRARY_PATH/LD_PRELOAD disappear so that the
- child doesn't get our libpthread and other stuff */
+ child doesn't get our libpthread and other stuff. This is
+ done unconditionally, since if we are tracing the child,
+ stage1/2 will set up the appropriate client environment. */
Int i;
Char** envp = (Char**)arg3;
@@ -1801,5 +1803,7 @@ PRE(execve)
/* XXX if variable becomes empty, remove it completely? */
}
- } else {
+ }
+
+ if (VG_(clo_trace_children)) {
/* If we're tracing the children, then we need to start it
with our starter+arguments.
|
|
From: Julian S. <js...@ac...> - 2004-01-04 23:31:28
|
CVS commit by jseward:
Support for FXSAVE/FXRSTOR (Tom Hughes). Fixes #71180.
M +3 -3 addrcheck/ac_main.c 1.59
M +17 -7 cachegrind/cg_main.c 1.61
M +1 -1 coregrind/vg_from_ucode.c 1.72
M +19 -0 coregrind/vg_to_ucode.c 1.120
M +19 -17 coregrind/vg_translate.c 1.67
M +1 -1 include/vg_skin.h.base 1.8
M +3 -3 memcheck/mac_needs.c 1.22
M +2 -2 memcheck/mc_main.c 1.46
M +2 -2 memcheck/mc_translate.c 1.34
--- valgrind/addrcheck/ac_main.c #1.58:1.59
@@ -908,5 +908,5 @@ void ac_fpu_ACCESS_check ( Addr addr, In
}
- if (size == 16 || size == 10 || size == 28 || size == 108) {
+ if (size == 16 || size == 10 || size == 28 || size == 108 || size == 512) {
PROF_EVENT(94);
ac_fpu_ACCESS_check_SLOWLY ( addr, size, isWrite );
@@ -1056,6 +1056,6 @@ UCodeBlock* SK_(instrument)(UCodeBlock*
goto do_Access_ARG3;
do_Access_ARG3:
- sk_assert(u_in->size == 4
- || u_in->size == 8 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 8
+ || u_in->size == 16 || u_in->size == 512);
sk_assert(u_in->tag3 == TempReg);
t_addr = u_in->val3;
--- valgrind/cachegrind/cg_main.c #1.60:1.61
@@ -545,5 +545,5 @@ static Int compute_BBCC_array_size(UCode
case SSE2a_MemRd:
case SSE2a1_MemRd:
- sk_assert(u_in->size == 4 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 16 || u_in->size == 512);
t_read = u_in->val3;
is_FPU_R = True;
@@ -578,5 +578,5 @@ static Int compute_BBCC_array_size(UCode
case SSE2a_MemWr:
- sk_assert(u_in->size == 4 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 16 || u_in->size == 512);
t_write = u_in->val3;
is_FPU_W = True;
@@ -799,9 +799,14 @@ UCodeBlock* SK_(instrument)(UCodeBlock*
case SSE2a_MemRd:
case SSE2a1_MemRd:
- sk_assert(u_in->size == 4 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 16 || u_in->size == 512);
t_read = u_in->val3;
t_read_addr = newTemp(cb);
uInstr2(cb, MOV, 4, TempReg, u_in->val3, TempReg, t_read_addr);
- data_size = u_in->size;
+ /* 512 B data-sized instructions will be done inaccurately
+ * but they're very rare and this avoids errors from
+ * hitting more than two cache lines in the simulation. */
+ data_size = ( u_in->size <= MIN_LINE_SIZE
+ ? u_in->size
+ : MIN_LINE_SIZE);
VG_(copy_UInstr)(cb, u_in);
break;
@@ -857,12 +862,17 @@ UCodeBlock* SK_(instrument)(UCodeBlock*
case SSE2a_MemWr:
- sk_assert(u_in->size == 4 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 16 || u_in->size == 512);
/* fall through */
case SSE3a_MemWr:
- sk_assert(u_in->size == 4 || u_in->size == 8 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 8 || u_in->size == 16 || u_in->size == 512);
t_write = u_in->val3;
t_write_addr = newTemp(cb);
uInstr2(cb, MOV, 4, TempReg, u_in->val3, TempReg, t_write_addr);
- data_size = u_in->size;
+ /* 512 B data-sized instructions will be done inaccurately
+ * but they're very rare and this avoids errors from
+ * hitting more than two cache lines in the simulation. */
+ data_size = ( u_in->size <= MIN_LINE_SIZE
+ ? u_in->size
+ : MIN_LINE_SIZE);
VG_(copy_UInstr)(cb, u_in);
break;
--- valgrind/coregrind/vg_from_ucode.c #1.71:1.72
@@ -4076,5 +4076,5 @@ static void emitUInstr ( UCodeBlock* cb,
case SSE2a_MemWr:
case SSE2a_MemRd:
- vg_assert(u->size == 4 || u->size == 16);
+ vg_assert(u->size == 4 || u->size == 16 || u->size == 512);
vg_assert(u->tag1 == Lit16);
vg_assert(u->tag2 == Lit16);
--- valgrind/coregrind/vg_to_ucode.c #1.119:1.120
@@ -3546,6 +3546,25 @@ static Addr disInstr ( UCodeBlock* cb, A
UChar* insn = (UChar*)eip;
+ /* FXSAVE/FXRSTOR m32 -- load/store the FPU/MMX/SSE state. */
+ if (insn[0] == 0x0F && insn[1] == 0xAE
+ && (!epartIsReg(insn[2]))
+ && (gregOfRM(insn[2]) == 1 || gregOfRM(insn[2]) == 0) ) {
+ Bool store = gregOfRM(insn[2]) == 0;
+ vg_assert(sz == 4);
+ pair = disAMode ( cb, sorb, eip+2, dis?dis_buf:NULL );
+ t1 = LOW24(pair);
+ eip += 2+HI8(pair);
+ uInstr3(cb, store ? SSE2a_MemWr : SSE2a_MemRd, 512,
+ Lit16, (((UShort)insn[0]) << 8) | (UShort)insn[1],
+ Lit16, (UShort)insn[2],
+ TempReg, t1 );
+ if (dis)
+ VG_(printf)("fx%s %s\n", store ? "save" : "rstor", dis_buf );
+ goto decode_success;
+ }
+
/* STMXCSR/LDMXCSR m32 -- load/store the MXCSR register. */
if (insn[0] == 0x0F && insn[1] == 0xAE
+ && (!epartIsReg(insn[2]))
&& (gregOfRM(insn[2]) == 3 || gregOfRM(insn[2]) == 2) ) {
Bool store = gregOfRM(insn[2]) == 3;
--- valgrind/coregrind/vg_translate.c #1.66:1.67
@@ -415,5 +415,6 @@ Bool VG_(saneUInstr) ( Bool beforeRA, Bo
# define SZ48 (u->size == 4 || u->size == 8)
# define SZ416 (u->size == 4 || u->size == 16)
-# define SZsse (u->size == 4 || u->size == 8 || u->size == 16)
+# define SZsse2 (u->size == 4 || u->size == 16 || u->size == 512)
+# define SZsse3 (u->size == 4 || u->size == 8 || u->size == 16)
# define SZi (u->size == 4 || u->size == 2 || u->size == 1)
# define SZf ( u->size == 4 || u->size == 8 || u->size == 2 \
@@ -564,9 +565,9 @@ Bool VG_(saneUInstr) ( Bool beforeRA, Bo
/* Fields checked: lit32 size flags_r/w tag1 tag2 tag3 (rest) */
- case SSE2a_MemWr: return LIT0 && SZ416 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
- case SSE2a_MemRd: return LIT0 && SZ416 && CCa && Ls1 && Ls2 && TR3 && XOTHER;
+ case SSE2a_MemWr: return LIT0 && SZsse2 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
+ case SSE2a_MemRd: return LIT0 && SZsse2 && CCa && Ls1 && Ls2 && TR3 && XOTHER;
case SSE2a1_MemRd: return LIT0 && SZ416 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
- case SSE3a_MemWr: return LIT0 && SZsse && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
- case SSE3a_MemRd: return LIT0 && SZsse && CCa && Ls1 && Ls2 && TR3 && XOTHER;
+ case SSE3a_MemWr: return LIT0 && SZsse3 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
+ case SSE3a_MemRd: return LIT0 && SZsse3 && CCa && Ls1 && Ls2 && TR3 && XOTHER;
case SSE3e_RegRd: return LIT0 && SZ4 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
case SSE3e_RegWr: return LIT0 && SZ4 && CC0 && Ls1 && Ls2 && TR3 && XOTHER;
@@ -603,5 +604,6 @@ Bool VG_(saneUInstr) ( Bool beforeRA, Bo
# undef SZ48
# undef SZ416
-# undef SZsse
+# undef SZsse2
+# undef SZsse3
# undef SZi
# undef SZf
--- valgrind/include/vg_skin.h.base #1.7:1.8
@@ -961,5 +961,5 @@
UShort val3; /* third operand */
UChar opcode; /* opcode */
- UChar size; /* data transfer size */
+ UShort size; /* data transfer size */
/* word 4 */
--- valgrind/memcheck/mac_needs.c #1.21:1.22
@@ -733,5 +733,5 @@ A 78 ACCESS1_SLOWLY
82 fpu_read aligned 8
83 fpu_read 2
- 84 fpu_read 10/28/108
+ 84 fpu_read 10/28/108/512
M 85 fpu_write
@@ -739,5 +739,5 @@ M 86 fpu_write aligned 4
M 87 fpu_write aligned 8
M 88 fpu_write 2
-M 89 fpu_write 10/28/108
+M 89 fpu_write 10/28/108/512
90 fpu_access
@@ -745,5 +745,5 @@ M 89 fpu_write 10/28/108
92 fpu_access aligned 8
93 fpu_access 2
- 94 fpu_access 10/28/108
+ 94 fpu_access 10/28/108/512
100 fpu_access_check_SLOWLY
--- valgrind/memcheck/mc_main.c #1.45:1.46
@@ -1191,5 +1191,5 @@ void MC_(fpu_read_check) ( Addr addr, In
if (size == 16 /*SSE*/
- || size == 10 || size == 28 || size == 108) {
+ || size == 10 || size == 28 || size == 108 || size == 512) {
PROF_EVENT(84);
mc_fpu_read_check_SLOWLY ( addr, size );
@@ -1274,5 +1274,5 @@ void MC_(fpu_write_check) ( Addr addr, I
if (size == 16 /*SSE*/
- || size == 10 || size == 28 || size == 108) {
+ || size == 10 || size == 28 || size == 108 || size == 512) {
PROF_EVENT(89);
mc_fpu_write_check_SLOWLY ( addr, size );
--- valgrind/memcheck/mc_translate.c #1.33:1.34
@@ -1113,6 +1113,6 @@ static UCodeBlock* memcheck_instrument (
Int t_size;
- sk_assert(u_in->size == 4
- || u_in->size == 8 || u_in->size == 16);
+ sk_assert(u_in->size == 4 || u_in->size == 8
+ || u_in->size == 16 || u_in->size == 512);
t_size = INVALID_TEMPREG;
|
|
From: Robert W. <rj...@ke...> - 2004-01-04 23:16:00
|
CVS commit by rjwalsh: Add missing atoll16 prototype. I use this in the watchpoint stuff. M +3 -0 vg_skin.h.base 1.7 --- valgrind/include/vg_skin.h.base #1.6:1.7 @@ -405,4 +405,7 @@ extern Long VG_(atoll) ( Char* str ); +/* Like atoll(), but converts a number of base 16 */ +extern Long VG_(atoll16) ( Char* str ); + /* Like atoll(), but converts a number of base 2..36 */ extern Long VG_(atoll36) ( UInt base, Char* str ); |
|
From: Jeremy F. <je...@go...> - 2004-01-04 23:10:41
|
CVS commit by fitzhardinge:
Fix do_exec's permission checking.
M +19 -10 ume.c 1.6
--- valgrind/coregrind/ume.c #1.5:1.6
@@ -647,16 +647,25 @@ static int do_exec_inner(const char *exe
}
- if (uid == st.st_uid && !(st.st_mode & S_IXUSR))
- return EACCES;
-
- if (gid == st.st_gid && !(st.st_mode & S_IXGRP))
+ if (uid == st.st_uid) {
+ if (!(st.st_mode & S_IXUSR))
return EACCES;
+ } else {
+ int grpmatch = 0;
+ if (gid == st.st_gid)
+ grpmatch = 1;
+ else
for(i = 0; i < ngrp; i++)
- if (groups[i] == st.st_gid && !(st.st_mode & S_IXGRP))
- return EACCES;
+ if (groups[i] == st.st_gid) {
+ grpmatch = 1;
+ break;
+ }
- if (!(st.st_mode & S_IXOTH))
+ if (grpmatch) {
+ if (!(st.st_mode & S_IXGRP))
return EACCES;
+ } else if (!(st.st_mode & S_IXOTH))
+ return EACCES;
+ }
}
|
|
From: Julian S. <js...@ac...> - 2004-01-04 23:08:40
|
CVS commit by jseward:
In the fast sanity check for these tools which use shadow memory,
remove the test that the first page of memory is inaccessible. This
is now getting in the way.
Fixes #69886.
M +2 -15 addrcheck/ac_main.c 1.58
M +2 -16 helgrind/hg_main.c 1.71
M +2 -15 memcheck/mc_main.c 1.45
--- valgrind/addrcheck/ac_main.c #1.57:1.58
@@ -1143,21 +1143,8 @@ static void ac_detect_memory_leaks ( voi
------------------------------------------------------------------ */
-/* Check that nobody has spuriously claimed that the first or last 16
- pages (64 KB) of address space have become accessible. Failure of
- the following do not per se indicate an internal consistency
- problem, but they are so likely to that we really want to know
- about it if so. */
-
Bool SK_(cheap_sanity_check) ( void )
{
- if (IS_DISTINGUISHED_SM(primary_map[0])
- /* kludge: kernel drops a page up at top of address range for
- magic "optimized syscalls", so we can no longer check the
- highest page */
- /* && IS_DISTINGUISHED_SM(primary_map[65535]) */
- )
+ /* nothing useful we can rapidly check */
return True;
- else
- return False;
}
--- valgrind/helgrind/hg_main.c #1.70:1.71
@@ -2001,21 +2001,8 @@ void* SK_(realloc) ( void* p, Int new_si
/*--------------------------------------------------------------*/
-/* Check that nobody has spuriously claimed that the first or last 16
- pages (64 KB) of address space have become accessible. Failure of
- the following do not per se indicate an internal consistency
- problem, but they are so likely to that we really want to know
- about it if so. */
-
Bool SK_(cheap_sanity_check) ( void )
{
- if (VGE_IS_DISTINGUISHED_SM(primary_map[0])
- /* kludge: kernel drops a page up at top of address range for
- magic "optimized syscalls", so we can no longer check the
- highest page */
- /* && VGE_IS_DISTINGUISHED_SM(primary_map[65535]) */
- )
+ /* nothing useful we can rapidly check */
return True;
- else
- return False;
}
--- valgrind/memcheck/mc_main.c #1.44:1.45
@@ -1469,21 +1469,8 @@ void MC_(detect_memory_leaks) ( void )
------------------------------------------------------------------ */
-/* Check that nobody has spuriously claimed that the first or last 16
- pages (64 KB) of address space have become accessible. Failure of
- the following do not per se indicate an internal consistency
- problem, but they are so likely to that we really want to know
- about it if so. */
-
Bool SK_(cheap_sanity_check) ( void )
{
- if (IS_DISTINGUISHED_SM(primary_map[0])
- /* kludge: kernel drops a page up at top of address range for
- magic "optimized syscalls", so we can no longer check the
- highest page */
- /* && IS_DISTINGUISHED_SM(primary_map[65535]) */
- )
+ /* nothing useful we can rapidly check */
return True;
- else
- return False;
}
|
|
From: Julian S. <js...@ac...> - 2004-01-04 22:50:45
|
CVS commit by jseward:
Handle 'B' (volatile) and 'k' (const) qualifiers in stabs. (Tom
Hughes / Manish Singh). Fixes #71791.
M +7 -0 vg_stabs.c 1.4
--- valgrind/coregrind/vg_stabs.c #1.3:1.4
@@ -651,4 +651,11 @@ static SymType *stabtype_parser(SegInfo
}
+ case 'k': /* const */
+ case 'B': { /* volatile */
+ /* 'k' TYPE */
+ type = stabtype_parser(si, NULL, &p);
+ break;
+ }
+
case 'x': { /* reference to undefined type */
/* 'x' ('s' | 'u' | 'e') NAME ':' */
|
|
From: Jeremy F. <je...@go...> - 2004-01-04 22:05:37
|
On Sun, 2004-01-04 at 02:42, Doug Rabson wrote: > Thats right. My FreeBSD system started valgrind with a stack that wasn't > aligned to 16 bytes and this confused fix_auxv enough to corrupt the > auxv entries given to stage2. Hm, I wonder if that code is ever needed... > The main problem (I think) is that the default data size limit for > FreeBSD is only 0.5G. We do overcommit by default but moving the brk > this way generates valid mappings (lazy allocated zero-filled mappings > but still valid) for the entire ~3G address space and this is greater > than the limit. Yep. Then they all get unmapped again immediately afterwards. Would it help to make a loop which increases brk by a bit, unmaps the pages, etc until brk is at the right place? > Overriding brk, sbrk (and even malloc itself) is perfectly safe in > FreeBSD and it should override all ways that the syscall can be called > apart from a pathological use of syscall(3). I made sure that stage2 was > able to call malloc safely with these changes although there was a > problem with non-trivial use of malloc because stage2's copy of libc.so > ended up being loaded very close to the end of stage2 which didn't leave > much spare to expand the 'brk'. Hm, yes, the kernel gets to place it, so I guess it could do that. Can we convince it to place it below stage2 (which is what happens on Linux)? > I think that RLIMIT_DATA in FreeBSD governs the virtual size of the > brk-managed region. The libc implementation will not fall back to mmap > if sbrk (or brk) fails. OK. And I presume brk/sbrk are not allowed to grow the brk segment beyond the next mapping up. > > I think the best thing to do is use this as a basis for factoring all > > the OS-specific code into OS-specific files. > > Right - I think that process has already been started. Hm. After looking at the patch in a bit more detail, the changes are smaller than I would have guessed. I'm pleased to see that almost all of vg_syscalls.c is common. I definitely don't want to duplicate common stuff, nor do I want to have lots of ifdefs, so the division will need to be more fine-grained than I first thought. I didn't really look at the differences between vg_libpthread.c and vg_libpthread_freebsd.c, but they seemed pretty similar. Why the split? Other things: does FreeBSD have the same sysinfo page mechanism as Linux now? And which version of FreeBSD should I download and install to try your stuff out? Would it be the New Technology release 5.1? 5.2? J |
|
From: Nicholas N. <nj...@ca...> - 2004-01-04 16:58:36
|
CVS commit by nethercote:
Folded cg_sim_{gen,I1,D1,L2}.c into cg_sim.c, which makes a lot more sense and
is shorter.
A cg_sim.c 1.1 [GPL (v2+)]
M +1 -5 Makefile.am 1.42
M +1 -3 cg_main.c 1.60
--- valgrind/cachegrind/Makefile.am #1.41:1.42
@@ -11,9 +11,5 @@
bin_SCRIPTS = cg_annotate
-EXTRA_DIST = \
- cg_sim_I1.c \
- cg_sim_D1.c \
- cg_sim_L2.c \
- cg_sim_gen.c
+EXTRA_DIST = cg_sim.c
val_PROGRAMS = vgskin_cachegrind.so
--- valgrind/cachegrind/cg_main.c #1.59:1.60
@@ -41,7 +41,5 @@ typedef struct {
} cache_t;
-#include "cg_sim_L2.c"
-#include "cg_sim_I1.c"
-#include "cg_sim_D1.c"
+#include "cg_sim.c"
/*------------------------------------------------------------*/
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-04 16:44:02
|
CVS commit by nethercote:
Updated copyright dates for 2004. Also added a couple of missing headers and
footers to some new files.
M +2 -2 addrcheck/ac_main.c 1.57
M +1 -1 auxprogs/valgrind-listener.c 1.12
M +2 -2 cachegrind/cg_annotate.in 1.19
M +2 -2 cachegrind/cg_main.c 1.59
M +1 -1 cachegrind/cg_sim_D1.c 1.9
M +1 -1 cachegrind/cg_sim_I1.c 1.9
M +1 -1 cachegrind/cg_sim_L2.c 1.9
M +1 -1 cachegrind/cg_sim_gen.c 1.12
M +2 -2 corecheck/cc_main.c 1.19
M +1 -1 corecheck/docs/cc_main.html 1.4
M +8 -0 coregrind/stage1.c 1.4
M +9 -0 coregrind/stage2.c 1.5
M +8 -0 coregrind/ume.c 1.5
M +1 -1 coregrind/vg_constants.h 1.15
M +1 -1 coregrind/vg_default.c 1.20
M +1 -1 coregrind/vg_demangle.c 1.7
M +1 -1 coregrind/vg_dispatch.S 1.15
M +1 -1 coregrind/vg_dummy_profile.c 1.9
M +1 -1 coregrind/vg_dwarf.c 1.3
M +1 -1 coregrind/vg_errcontext.c 1.48
M +1 -1 coregrind/vg_execontext.c 1.14
M +1 -1 coregrind/vg_from_ucode.c 1.71
M +1 -1 coregrind/vg_hashtable.c 1.8
M +1 -1 coregrind/vg_helpers.S 1.28
M +1 -1 coregrind/vg_include.h 1.166
M +1 -1 coregrind/vg_instrument.c 1.10
M +1 -1 coregrind/vg_intercept.c 1.28
M +1 -1 coregrind/vg_ldt.c 1.11
M +1 -1 coregrind/vg_libpthread.c 1.143
M +1 -1 coregrind/vg_libpthread_unimp.c 1.43
M +3 -3 coregrind/vg_main.c 1.135
M +1 -1 coregrind/vg_malloc2.c 1.17
M +1 -1 coregrind/vg_memory.c 1.50
M +1 -1 coregrind/vg_messages.c 1.9
M +1 -1 coregrind/vg_mylibc.c 1.64
M +1 -1 coregrind/vg_needs.c 1.14
M +1 -1 coregrind/vg_procselfmaps.c 1.11
M +1 -1 coregrind/vg_proxylwp.c 1.11
M +1 -1 coregrind/vg_replace_malloc.c 1.17
M +1 -1 coregrind/vg_scheduler.c 1.135
M +1 -1 coregrind/vg_signals.c 1.55
M +1 -1 coregrind/vg_stabs.c 1.3
M +1 -1 coregrind/vg_startup.S 1.21
M +1 -1 coregrind/vg_symtab2.c 1.72
M +1 -1 coregrind/vg_symtab2.h 1.5
M +1 -1 coregrind/vg_symtypes.c 1.3
M +1 -1 coregrind/vg_symtypes.h 1.3
M +1 -1 coregrind/vg_syscall.S 1.11
M +1 -1 coregrind/vg_syscalls.c 1.74
M +2 -2 coregrind/vg_to_ucode.c 1.119
M +1 -1 coregrind/vg_translate.c 1.66
M +1 -1 coregrind/vg_transtab.c 1.27
M +1 -1 coregrind/vg_unsafe.h 1.23
M +1 -1 coregrind/arch/x86-freebsd/vg_libpthread.c 1.2
M +1 -1 coregrind/arch/x86-freebsd/vg_syscall.S 1.2
M +1 -1 coregrind/arch/x86-linux/vg_libpthread.c 1.143
M +1 -1 coregrind/arch/x86-linux/vg_libpthread_unimp.c 1.43
M +1 -1 coregrind/arch/x86-linux/vg_syscall.S 1.11
M +1 -1 example/ex_main.c 1.16
M +1 -1 helgrind/helgrind.h 1.7
M +2 -2 helgrind/hg_main.c 1.70
M +1 -1 include/valgrind.h 1.24
M +1 -1 include/vg_constants_skin.h 1.7
M +1 -1 include/vg_kerneliface.h 1.11
M +1 -1 include/vg_profile.c 1.10
M +2 -2 include/vg_skin.h.base 1.6
M +2 -2 lackey/lk_main.c 1.23
M +1 -1 lackey/docs/lk_main.html 1.4
M +1 -1 memcheck/mac_leakcheck.c 1.13
M +1 -1 memcheck/mac_malloc_wrappers.c 1.9
M +1 -1 memcheck/mac_needs.c 1.21
M +1 -1 memcheck/mac_replace_strmem.c 1.12
M +1 -1 memcheck/mac_shared.h 1.16
M +1 -1 memcheck/mc_clientreqs.c 1.18
M +1 -1 memcheck/mc_constants.h 1.4
M +1 -1 memcheck/mc_errcontext.c 1.22
M +1 -1 memcheck/mc_from_ucode.c 1.15
M +1 -1 memcheck/mc_helpers.S 1.8
M +1 -1 memcheck/mc_include.h 1.18
M +2 -2 memcheck/mc_main.c 1.44
M +2 -2 memcheck/mc_translate.c 1.33
M +1 -1 memcheck/memcheck.h 1.17
M +1 -1 memcheck/docs/mc_techdocs.html 1.9
M +2 -2 none/nl_main.c 1.18
M +1 -1 none/docs/nl_main.html 1.4
--- valgrind/addrcheck/ac_main.c #1.56:1.57
@@ -10,5 +10,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
@@ -1276,5 +1276,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("a fine-grained address checker");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 135 );
--- valgrind/auxprogs/valgrind-listener.c #1.11:1.12
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/cachegrind/cg_annotate.in #1.18:1.19
@@ -10,5 +10,5 @@
# profiling programs.
#
-# Copyright (C) 2002-2003 Nicholas Nethercote
+# Copyright (C) 2002-2004 Nicholas Nethercote
# nj...@ca...
#
@@ -159,5 +159,5 @@
source files
- Cachegrind is Copyright (C) 2002-2003 Nicholas Nethercote.
+ Cachegrind is Copyright (C) 2002-2004 Nicholas Nethercote.
Both are licensed under the GNU General Public License, version 2.
Bug reports, feedback, admiration, abuse, etc, to: njn25\@cam.ac.uk.
--- valgrind/cachegrind/cg_main.c #1.58:1.59
@@ -10,5 +10,5 @@
profiling programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
@@ -2022,5 +2022,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("an I1/D1/L2 cache profiler");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Nicholas Nethercote.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas Nethercote.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 155 );
--- valgrind/cachegrind/cg_sim_D1.c #1.8:1.9
@@ -9,5 +9,5 @@
profiling programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/cachegrind/cg_sim_I1.c #1.8:1.9
@@ -9,5 +9,5 @@
profiling programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/cachegrind/cg_sim_L2.c #1.8:1.9
@@ -9,5 +9,5 @@
profiling programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/cachegrind/cg_sim_gen.c #1.11:1.12
@@ -9,5 +9,5 @@
profiling programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/corecheck/cc_main.c #1.18:1.19
@@ -9,5 +9,5 @@
detecting certain basic program errors.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
@@ -38,5 +38,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("a rudimentary error detector");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Nicholas Nethercote.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas Nethercote.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
--- valgrind/corecheck/docs/cc_main.html #1.3:1.4
@@ -32,5 +32,5 @@
<center>
<a href="mailto:nj...@ca...">nj...@ca...</a><br>
-Copyright © 2000-2003 Nicholas Nethercote
+Copyright © 2000-2004 Nicholas Nethercote
<p>
CoreCheck is licensed under the GNU General Public License,
--- valgrind/coregrind/stage1.c #1.3:1.4
@@ -1,3 +1,7 @@
+/*--------------------------------------------------------------------*/
+/*--- Startup: stage 1 stage1.c ---*/
+/*--------------------------------------------------------------------*/
+
/*
This file is part of Valgrind, an extensible x86 protected-mode
@@ -206,2 +210,6 @@ int main(int argc, char **argv)
ume_go((addr_t)hoops, (addr_t)stack + sizeof(stack));
}
+
+/*--------------------------------------------------------------------*/
+/*--- end stage1.c ---*/
+/*--------------------------------------------------------------------*/
--- valgrind/coregrind/stage2.c #1.4:1.5
@@ -1,3 +1,7 @@
+/*--------------------------------------------------------------------*/
+/*--- Startup: stage 2 stage1.c ---*/
+/*--------------------------------------------------------------------*/
+
/*
This file is part of Valgrind, an extensible x86 protected-mode
@@ -1001,2 +1005,7 @@ int main(int argc, char **argv)
abort();
}
+
+/*--------------------------------------------------------------------*/
+/*--- end stage2.c ---*/
+/*--------------------------------------------------------------------*/
+
--- valgrind/coregrind/ume.c #1.4:1.5
@@ -1,3 +1,7 @@
+/*--------------------------------------------------------------------*/
+/*--- User-mode execve() ume.c ---*/
+/*--------------------------------------------------------------------*/
+
/*
This file is part of Valgrind, an extensible x86 protected-mode
@@ -685,2 +689,6 @@ int do_exec(const char *exe, struct exei
return do_exec_inner(exe, info);
}
+
+/*--------------------------------------------------------------------*/
+/*--- end ume.c ---*/
+/*--------------------------------------------------------------------*/
--- valgrind/coregrind/vg_constants.h #1.14:1.15
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_default.c #1.19:1.20
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Nicholas Nethercote
+ Copyright (C) 2000-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/coregrind/vg_demangle.c #1.6:1.7
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_dispatch.S #1.14:1.15
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_dummy_profile.c #1.8:1.9
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_dwarf.c #1.2:1.3
@@ -7,5 +7,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_errcontext.c #1.47:1.48
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_execontext.c #1.13:1.14
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_from_ucode.c #1.70:1.71
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_hashtable.c #1.7:1.8
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_helpers.S #1.27:1.28
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_include.h #1.165:1.166
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_instrument.c #1.9:1.10
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Nicholas Nethercote
+ Copyright (C) 2000-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/coregrind/vg_intercept.c #1.27:1.28
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_ldt.c #1.10:1.11
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_libpthread.c #1.142:1.143
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_libpthread_unimp.c #1.42:1.43
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_main.c #1.134:1.135
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
@@ -721,5 +721,5 @@ void VG_(usage) ( void )
" Extra options are read from env variable $VALGRIND_OPTS\n"
"\n"
-" Valgrind is Copyright (C) 2000-2003 Julian Seward\n"
+" Valgrind is Copyright (C) 2000-2004 Julian Seward\n"
" and licensed under the GNU General Public License, version 2.\n"
" Bug reports, feedback, admiration, abuse, etc, to: %s.\n"
@@ -1146,5 +1146,5 @@ static void process_cmd_line_options ( c
VERSION);
VG_(message)(Vg_UserMsg,
- "Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.");
+ "Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.");
}
--- valgrind/coregrind/vg_malloc2.c #1.16:1.17
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_memory.c #1.49:1.50
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_messages.c #1.8:1.9
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_mylibc.c #1.63:1.64
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_needs.c #1.13:1.14
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Nicholas Nethercote
+ Copyright (C) 2000-2004 Nicholas Nethercote
nj...@ca...
--- valgrind/coregrind/vg_procselfmaps.c #1.10:1.11
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_proxylwp.c #1.10:1.11
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_replace_malloc.c #1.16:1.17
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_scheduler.c #1.134:1.135
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_signals.c #1.54:1.55
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_stabs.c #1.2:1.3
@@ -7,5 +7,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_startup.S #1.20:1.21
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_symtab2.c #1.71:1.72
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_symtab2.h #1.4:1.5
@@ -7,5 +7,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_symtypes.c #1.2:1.3
@@ -7,5 +7,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_symtypes.h #1.2:1.3
@@ -7,5 +7,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_syscall.S #1.10:1.11
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_syscalls.c #1.73:1.74
@@ -8,5 +8,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_to_ucode.c #1.118:1.119
@@ -1,3 +1,3 @@
-/* -*- c-basic-offset: 3 -*- */
+
/*--------------------------------------------------------------------*/
/*--- The JITter: translate x86 code to ucode. ---*/
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_translate.c #1.65:1.66
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_transtab.c #1.26:1.27
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/vg_unsafe.h #1.22:1.23
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/arch/x86-freebsd/vg_libpthread.c #1.1:1.2
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/arch/x86-freebsd/vg_syscall.S #1.1:1.2
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/arch/x86-linux/vg_libpthread.c #1.142:1.143
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/arch/x86-linux/vg_libpthread_unimp.c #1.42:1.43
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/coregrind/arch/x86-linux/vg_syscall.S #1.10:1.11
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/example/ex_main.c #1.15:1.16
@@ -37,5 +37,5 @@ static void SK_(pre_clo_init)()
VG_(details_description) ("an example Valgrind tool");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and put in the public domain, by Santa Claus.");
+ "Copyright (C) 2002-2004, and put in the public domain, by Santa Claus.");
VG_(details_bug_reports_to) ("san...@no...");
--- valgrind/helgrind/helgrind.h #1.6:1.7
@@ -12,5 +12,5 @@
data races in threaded programs.
- Copyright (C) 2002-2003 Nicholas Nethercote. All rights reserved.
+ Copyright (C) 2002-2004 Nicholas Nethercote. All rights reserved.
Redistribution and use in source and binary forms, with or without
--- valgrind/helgrind/hg_main.c #1.69:1.70
@@ -9,5 +9,5 @@
data races in threaded programs.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
@@ -3236,5 +3236,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("a data race detector");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Nicholas Nethercote.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas Nethercote.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 115 );
--- valgrind/include/valgrind.h #1.23:1.24
@@ -13,5 +13,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward. All rights reserved.
+ Copyright (C) 2000-2004 Julian Seward. All rights reserved.
Redistribution and use in source and binary forms, with or without
--- valgrind/include/vg_constants_skin.h #1.6:1.7
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/include/vg_kerneliface.h #1.10:1.11
@@ -10,5 +10,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/include/vg_profile.c #1.9:1.10
@@ -11,5 +11,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/include/vg_skin.h.base #1.5:1.6
@@ -1,3 +1,3 @@
-/* -*- c -*- */
+
/*--------------------------------------------------------------------*/
/*--- The only header your skin will ever need to #include... ---*/
@@ -9,5 +9,5 @@
emulator for monitoring program execution on x86-Unixes.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/lackey/lk_main.c #1.22:1.23
@@ -9,5 +9,5 @@
some simple program measurement.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
@@ -79,5 +79,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("an example Valgrind tool");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Nicholas Nethercote.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas Nethercote.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 175 );
--- valgrind/lackey/docs/lk_main.html #1.3:1.4
@@ -32,5 +32,5 @@
<center>
<a href="mailto:nj...@ca...">nj...@ca...</a><br>
-Copyright © 2000-2003 Nicholas Nethercote
+Copyright © 2002-2004 Nicholas Nethercote
<p>
Lackey is licensed under the GNU General Public License,
--- valgrind/memcheck/mac_leakcheck.c #1.12:1.13
@@ -10,5 +10,5 @@
for detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mac_malloc_wrappers.c #1.8:1.9
@@ -10,5 +10,5 @@
for detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mac_needs.c #1.20:1.21
@@ -10,5 +10,5 @@
for detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mac_replace_strmem.c #1.11:1.12
@@ -10,5 +10,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mac_shared.h #1.15:1.16
@@ -10,5 +10,5 @@
for detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_clientreqs.c #1.17:1.18
@@ -10,5 +10,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_constants.h #1.3:1.4
@@ -8,5 +8,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_errcontext.c #1.21:1.22
@@ -9,5 +9,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_from_ucode.c #1.14:1.15
@@ -9,5 +9,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_helpers.S #1.7:1.8
@@ -9,5 +9,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_include.h #1.17:1.18
@@ -9,5 +9,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/mc_main.c #1.43:1.44
@@ -10,5 +10,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
@@ -1656,5 +1656,5 @@ void SK_(pre_clo_init)(void)
VG_(details_description) ("a memory error detector");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 228 );
--- valgrind/memcheck/mc_translate.c #1.32:1.33
@@ -1,3 +1,3 @@
-/* -*- c-basic-offset: 3 -*- */
+
/*--------------------------------------------------------------------*/
/*--- Instrument UCode to perform memory checking operations. ---*/
@@ -9,5 +9,5 @@
detecting memory errors.
- Copyright (C) 2000-2003 Julian Seward
+ Copyright (C) 2000-2004 Julian Seward
js...@ac...
--- valgrind/memcheck/memcheck.h #1.16:1.17
@@ -13,5 +13,5 @@
detecting memory errors.
- Copyright (C) 2002-2003 Julian Seward. All rights reserved.
+ Copyright (C) 2000-2004 Julian Seward. All rights reserved.
Redistribution and use in source and binary forms, with or without
--- valgrind/memcheck/docs/mc_techdocs.html #1.8:1.9
@@ -35,5 +35,5 @@
<a href="mailto:js...@ac...">js...@ac...</a><br>
<a href="http://valgrind.kde.org">http://valgrind.kde.org</a><br>
-Copyright © 2000-2003 Julian Seward
+Copyright © 2000-2004 Julian Seward
<p>
Valgrind is licensed under the GNU General Public License,
--- valgrind/none/nl_main.c #1.17:1.18
@@ -8,5 +8,5 @@
which does nothing.
- Copyright (C) 2002-2003 Nicholas Nethercote
+ Copyright (C) 2002-2004 Nicholas Nethercote
nj...@ca...
@@ -52,5 +52,5 @@ static void pre_clo_init(void)
VG_(details_description) ("a binary JIT-compiler");
VG_(details_copyright_author)(
- "Copyright (C) 2002-2003, and GNU GPL'd, by Nicholas Nethercote.");
+ "Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas Nethercote.");
VG_(details_bug_reports_to) (VG_BUGS_TO);
--- valgrind/none/docs/nl_main.html #1.3:1.4
@@ -32,5 +32,5 @@
<center>
<a href="mailto:nj...@ca...">nj...@ca...</a><br>
-Copyright © 2000-2003 Nicholas Nethercote
+Copyright © 2000-2004 Nicholas Nethercote
<p>
Nulgrind is licensed under the GNU General Public License,
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-04 13:14:21
|
CVS commit by nethercote:
Adding "use strict" and "use warnings", for safety. Required some extra
variable declarations.
M +6 -0 gen_toolint.pl 1.3
--- valgrind/coregrind/gen_toolint.pl #1.2:1.3
@@ -24,4 +24,6 @@
# The GNU General Public License is contained in the file COPYING.
+use strict;
+use warnings;
my $output = shift @ARGV;
@@ -30,4 +32,7 @@
my $include;
my $passcomment = 1;
+my $pre;
+my $post;
+my $generate;
my $struct = "VG_(tool_interface)";
@@ -211,4 +216,5 @@
my $buf;
my $lines;
+my $prefix;
while(<STDIN>) {
|
|
From: Doug R. <df...@nl...> - 2004-01-04 10:43:10
|
On Sat, 2004-01-03 at 22:30, Jeremy Fitzhardinge wrote: > On Fri, 2004-01-02 at 03:56, Doug Rabson wrote: > > I've updated the port to work with the post FV valgrind. You can get a > > patch against today's CVS from > > http://people.freebsd.org/~dfr/valgrind-20040102-dfr.diff. > > That's great! I'll have a look at your latest patch in detail later > today. > > > The only really dodgy bits in this patch are in stage1.c where I had to > > stub out the stack alignment bits. The code couldn't code when the > ^^^^ cope? yes :-) > > alignment offset wasn't exactly zero because it assumed that the new aux > > entries would fit exactly into the gap. > > Do you mean the stuff in fix_auxv? Thats right. My FreeBSD system started valgrind with a stack that wasn't aligned to 16 bytes and this confused fix_auxv enough to corrupt the auxv entries given to stage2. > > > I also had problems moving the > > brk() up past the end of stage2 so I punted on that and just overrode > > brk() and sbrk() instead. > > Is that because FreeBSD doesn't overcommit by default? The reason for > trying to get the brk base into the right place for stage2 is so that > stage2 can use libraries which want to use brk (eg, libc malloc). If > you override brk in stage2, will that definitely override all possible > ways the brk() syscall can be called? Because it could get pretty > disastrous if brk(2) accidentally got called. Also, in FreeBSD, is sbrk > a syscall or just a library function? The main problem (I think) is that the default data size limit for FreeBSD is only 0.5G. We do overcommit by default but moving the brk this way generates valid mappings (lazy allocated zero-filled mappings but still valid) for the entire ~3G address space and this is greater than the limit. Overriding brk, sbrk (and even malloc itself) is perfectly safe in FreeBSD and it should override all ways that the syscall can be called apart from a pathological use of syscall(3). I made sure that stage2 was able to call malloc safely with these changes although there was a problem with non-trivial use of malloc because stage2's copy of libc.so ended up being loaded very close to the end of stage2 which didn't leave much spare to expand the 'brk'. The implementation of brk and sbrk in FreeBSD is a hybrid of library and syscall. The current and minimum break values are handled in user code and new break locations are given to the kernel via the syscall. Its very simple and easy to understand if you read the code (src/lib/libc/i386/sys/brk.S and src/lib/libc/i386/sys/sbrk.S in any FreeBSD source tree). > > Also, what does FreeBSD's RLIMIT_DATA govern? In Linux it is > effectively useless, because it only governs the brk syscall (and a.out > executable BSS size). This is useless because glibc will always fall > back to using mmap() if brk fails, so if brk fails because of > RLIMIT_DATA, it will still keep allocating memory. I was thinking of > taking advantage of this by setting RLIMIT_DATA to 0 so that I can be > sure that brk(2) will always fail and not cause problems. I think that RLIMIT_DATA in FreeBSD governs the virtual size of the brk-managed region. The libc implementation will not fall back to mmap if sbrk (or brk) fails. > > > I had problems with vg_signals.c for the async signal handlers. > > Currently FreeBSD has a bug (which will be fixed RSN) with sigaltstack > > that means that all threads share the same stack setting. This meant > > that async signals (intended for the proxylwp) were being delivered on > > the signal stack instead of the proxylwp stack. I just changed the code > > to not set SA_ONSTACK for those signals. > > That sounds OK. > > > Attaching GDB doesn't work very well with this port since we have no > > equivalent of /proc/self/fd. I guess the code could be changed to > > remember the exec filename and pass that instead of /proc/self/fd/$d. > > Yes, I was planning something like that anyway, cause all the /proc > stuff is pretty non-portable. That said, the GDB attach stuff is broken > anyway, because it's pretty hard to get right (it's very hard for a > program to attach gdb to itself, and set its own state up into something > which gdb wants to examine). In particular, the state of %ebp gets > trashed as part of the exec of gdb, so gdb doesn't see a sane backtrace > at the moment. > > > This also affected the implementation of VG_(resolve_filename) which I > > worked around by using the file descriptor tracking code to lookup the > > filename. > > For just the cases where the fd was obviously created out of a name? Thats right. I also made it unconditional for dup-like calls where the original file descriptor might have had a name. > > > I haven't tested this patch with a Linux box - my RH9 machine is several > > miles away and switched off for the holidays. I've tried to keep things > > decently conditional but there are almost certainly one or two nits. > > I think the best thing to do is use this as a basis for factoring all > the OS-specific code into OS-specific files. Right - I think that process has already been started. |
|
From: Nicholas N. <nj...@ca...> - 2004-01-04 10:43:05
|
On Sun, 4 Jan 2004, Nick wrote: > > Unfortunately, it falls over sometimes. The reason is, I maintain a stack > > of activation records, and if the function returned from doesn't match > > that on the top, it dies. Actually, I do some fiddling with %esp which > > catches many uses of longjmp, but not all. > > What would you call "sometimes", as a short test case? IIRC, it gets most programs right, but falls over on some big ones like OpenOffice. N |
|
From: Eyal L. <ey...@ey...> - 2004-01-04 04:40:43
|
Attached is a small program that demonstrates the problem. HTH. eyal@e7:~$ sh vg1.sh gcc version: 2.95.4 /home/eyal/zz.c(60) will pthread_attr_init /home/eyal/zz.c(63) pthread_attr_init=0 /home/eyal/zz.c(66) will pthread_create /home/eyal/zz.c(70) pthread_create=0 /home/eyal/zz.c(73) will pthread_attr_destroy /home/eyal/zz.c(76) pthread_attr_destroy=0 /home/eyal/zz.c(79) will pthread_join /home/eyal/zz.c(21) thread alive! zz.log /home/eyal/zz.c(34) wait() failed /home/eyal/zz.c(39) child returned 0 /home/eyal/zz.c(82) pthread_join=0 eyal@e7:~$ vi vg1.sh ***** set --trace-children=yes ***** eyal@e7:~$ sh vg1.sh gcc version: 2.95.4 /home/eyal/zz.c(60) will pthread_attr_init /home/eyal/zz.c(63) pthread_attr_init=0 /home/eyal/zz.c(66) will pthread_create /home/eyal/zz.c(70) pthread_create=0 /home/eyal/zz.c(73) will pthread_attr_destroy /home/eyal/zz.c(76) pthread_attr_destroy=0 /home/eyal/zz.c(79) will pthread_join /home/eyal/zz.c(21) thread alive! /home/eyal/zz.c(34) wait() failed /home/eyal/zz.c(44) child did not exit normally /home/eyal/zz.c(47) child received signal 11 /home/eyal/zz.c(82) pthread_join=0 eyal@e7:~$ -- Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/> |
|
From: Julian S. <js...@ac...> - 2004-01-04 03:46:49
|
CVS commit by jseward:
Add copyright notices to new files.
M +24 -0 coregrind/gen_toolint.pl 1.2
M +26 -0 coregrind/stage1.c 1.3
M +26 -0 coregrind/stage2.c 1.4
M +26 -0 coregrind/ume.c 1.4
M +26 -0 coregrind/ume.h 1.2
M +26 -0 coregrind/ume_arch.h 1.2
M +26 -0 coregrind/vg_skiplist.c 1.2
M +26 -0 coregrind/vg_unistd.h 1.2
M +26 -0 coregrind/x86/ume_archdefs.c 1.2
M +26 -0 coregrind/x86/ume_archdefs.h 1.2
M +26 -0 coregrind/x86/ume_entry.S 1.2
M +26 -0 coregrind/x86/ume_go.c 1.2
M +25 -0 example/ex_main.c 1.15
--- valgrind/coregrind/gen_toolint.pl #1.1:1.2
@@ -1,4 +1,28 @@
#!/usr/bin/perl
+# This file is part of Valgrind, an extensible x86 protected-mode
+# emulator for monitoring program execution on x86-Unixes.
+#
+# Copyright (C) 2000-2004 Julian Seward
+# js...@ac...
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+# The GNU General Public License is contained in the file COPYING.
+
+
my $output = shift @ARGV;
my $indent = "";
--- valgrind/coregrind/stage1.c #1.2:1.3
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#define _FILE_OFFSET_BITS 64
--- valgrind/coregrind/stage2.c #1.3:1.4
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#define _FILE_OFFSET_BITS 64
--- valgrind/coregrind/ume.c #1.3:1.4
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
/*
User-mode exec
--- valgrind/coregrind/ume.h #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#ifndef _COREGRIND_UME_H
#define _COREGRIND_UME_H
--- valgrind/coregrind/ume_arch.h #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#ifndef UME_ARCH
#define UME_ARCH
--- valgrind/coregrind/vg_skiplist.c #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2002-2004 Nicholas Nethercote
+ nj...@ca...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#include "vg_include.h"
--- valgrind/coregrind/vg_unistd.h #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#ifndef _VG_ASM_I386_UNISTD_H_
#define _VG_ASM_I386_UNISTD_H_
--- valgrind/coregrind/x86/ume_archdefs.c #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#include "ume_archdefs.h"
--- valgrind/coregrind/x86/ume_archdefs.h #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#ifndef UME_ARCHDEFS_H
#define UME_ARCHDEFS_H
--- valgrind/coregrind/x86/ume_entry.S #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
.text
.globl _ume_entry
--- valgrind/coregrind/x86/ume_go.c #1.1:1.2
@@ -1,2 +1,28 @@
+
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2000-2004 Julian Seward
+ js...@ac...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#include "ume_arch.h"
--- valgrind/example/ex_main.c #1.14:1.15
@@ -4,4 +4,29 @@
/*--------------------------------------------------------------------*/
+/*
+ This file is part of Valgrind, an extensible x86 protected-mode
+ emulator for monitoring program execution on x86-Unixes.
+
+ Copyright (C) 2002-2004 Nicholas Nethercote
+ nj...@ca...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
#include "vg_skin.h"
|
|
From: Eyal L. <ey...@ey...> - 2004-01-04 01:57:27
|
Jeremy Fitzhardinge wrote: > Um. It would be nice if you could give us a lot more detail - like the > actual error message it generated, and other debugging stuff it probably > printed. And what do you mean by "spawn"? There's no library function > or syscall called that. Do you mean system? execve? OK, I now have these logs. First a good run of a program 'ssaexec' which simply spawn a child with the same arguments as itself. In real life it is used as a wrapper for redirecting stdout/err and such. ================================ $ valgrind --tool=memcheck --leak-check=yes --show-reachable=no --num-callers=32 \ > --error-limit=no --run-libc-freeres=no --trace-syscalls=yes --trace-children=no --logfile-fd=9 \ > ../bin/ssaexec -- ls *.dbg 9>ssaexec.err.no ids.dbg $ valgrind --tool=memcheck --leak-check=yes --show-reachable=no --num-callers=32 \ > --error-limit=no --run-libc-freeres=no --trace-syscalls=yes --trace-children=yes --logfile-fd=9 \ > ../bin/ssaexec -- ls *.dbg 9>ssaexec.err.yes ssaexec> Spawned program 'ls' failed -9 ssaexec> ErrorLog [104122857 1] ssaexec > It is now 20040104122857 ssaexec> ErrorLog [104122857 1] ssaexec.c 152 rc 2 9*10 ssaexec> ErrorLog [104122857 1] spawn.c 453 rc 9 ssaexec> ErrorLog [104122857 1] pgm_parms[1] ids.dbg ssaexec> ErrorLog [104122857 1] pgm_parms[0] ls ssaexec> ErrorLog [104122857 1] log_parms: pgm_name='ls' ssaexec> ErrorLog [104122857 1] child received signal 11 ssaexec> ErrorLog [104122857 1] child 'ls' did not exit normally $ ================================ The test should simply execute 'ls *.dbg'. And the piece of code that does the actual spawn is executings the usual pid = fork () if (pid == 0) execve () wait (&status) if (WIFEXITED (status))... execve() failed to start the child when --trace-children=yes is used. I should make it clear that the underlying process is a bit more complex than it should be (for this simple case). The events are: - main() starts - a thread is launched and main() waits (join) for it - the thread is where the real meat is, and it does the spawning If this looks too complex for people in the know to track then I can spend more time and synthesize a small program that reproduces the problem. But I hope the attached traces will ring someones bell. -- Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/> |
|
From: Nick <ni...@sa...> - 2004-01-04 00:31:53
|
Thanks a million - this is a great help. Even if it's not entirely robust, I can start investigating how we need to modify the rest of our application to accept data from valgrind now. > > Unfortunately, it falls over sometimes. The reason is, I maintain a stack > of activation records, and if the function returned from doesn't match > that on the top, it dies. Actually, I do some fiddling with %esp which > catches many uses of longjmp, but not all. What would you call "sometimes", as a short test case? > > Generally, this function entry/exit tracking is a total pain, much harder > than you'd expect. Anyway, it might be useful for you. > Definitly useful. I still have hopes of understanding calltree's method, but I'm a lot wiser to the magnitude of the problem now. Nick |
|
From: Josef W. <Jos...@gm...> - 2004-01-04 00:20:32
|
Am Samstag, 3. Januar 2004 18:54 schrieb Nicholas Nethercote: > I've attached a tool (skin) I wrote, called Sparrow, that does exactly > ... Hi, for easy installation of sparrow, and to encourage you all to release future tools as separate packages, I attached sparrow.tgz, which adds a configure.in and a Makefile.am to get everything needed for a separate tool package. sp_main.c is left unmodified. Use ./autogen.sh before for the automake run. A "./configure" and "make dist" would produce the package. Josef PS: For robust call tracing, a helper at start of every basic block seems needed for PLT and code pieces without debug info... |