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
(26) |
2
(35) |
3
(18) |
4
(14) |
|
5
(12) |
6
(13) |
7
(11) |
8
(15) |
9
(8) |
10
(13) |
11
(25) |
|
12
(13) |
13
(24) |
14
(7) |
15
(6) |
16
(8) |
17
(6) |
18
(7) |
|
19
(8) |
20
(7) |
21
(5) |
22
(7) |
23
(6) |
24
(7) |
25
(6) |
|
26
(7) |
27
(7) |
28
(5) |
29
(5) |
30
(5) |
|
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-07 23:15:44
|
CVS commit by nethercote:
minor fixes
M +2 -2 vg_mylibc.c 1.88
--- valgrind/coregrind/vg_mylibc.c #1.87:1.88
@@ -285,5 +285,5 @@ void* VG_(mmap)( void* start, UInt lengt
vg_assert(VG_(client_base) <= res && res+length < VG_(client_end));
} else {
- vg_assert(VG_(valgrind_base) <= res && res+length <= VG_(valgrind_last));
+ vg_assert(VG_(valgrind_base) <= res && res+length-1 <= VG_(valgrind_last));
}
@@ -1664,5 +1664,5 @@ void* VG_(get_memory_from_mmap) ( Int nB
if (p != ((void*)(-1))) {
- vg_assert(p >= (void*)VG_(valgrind_base) && p <= (void*)VG_(valgrind_last));
+ vg_assert((void*)VG_(valgrind_base) <= p && p <= (void*)VG_(valgrind_last));
tot_alloc += (UInt)nBytes;
if (0)
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-07 23:04:56
|
CVS commit by nethercote:
To get 32-bit programs working on Opteron, VG_(valgrind_end) was recently
changed to name the last byte in Valgrind's section, rather than one past the
last byte. This was because the last byte is 0xffffffff, and so one past gave
0x0, which screwed things up.
However, when this change was made, all the places where VG_(valgrind_end) is
used weren't adjusted appropriately. So this commit makes those adjustments.
It also renames the variable as VG_(valgrind_last), which makes the difference
between it and the other VG_(*_end) variables much clearer.
M +1 -1 core.h 1.17
M +10 -17 vg_main.c 1.208
M +10 -10 vg_memory.c 1.68
M +3 -3 vg_mylibc.c 1.87
--- valgrind/coregrind/core.h #1.16:1.17
@@ -1246,5 +1246,5 @@ extern Addr VG_(shadow_base); /* tool's
extern Addr VG_(shadow_end);
extern Addr VG_(valgrind_base); /* valgrind's address range */
-extern Addr VG_(valgrind_end);
+extern Addr VG_(valgrind_last); // Nb: last byte, rather than one past the end
extern vki_rlimit VG_(client_rlimit_data); /* client's original rlimit data */
--- valgrind/coregrind/vg_main.c #1.207:1.208
@@ -109,9 +109,7 @@ Addr VG_(shadow_end);
Addr VG_(valgrind_base); /* valgrind's address range */
-// VG_(valgrind_end) has a slightly different meaning to all the other
-// VG_(*_end) vars -- ie. it names the last byte, whereas the others
-// go one byte past the end.
-
-Addr VG_(valgrind_end);
+// Note that VG_(valgrind_last) names the last byte of the section, whereas
+// the VG_(*_end) vars name the byte one past the end of the section.
+Addr VG_(valgrind_last);
vki_rlimit VG_(client_rlimit_data);
@@ -404,10 +402,5 @@ static void layout_remaining_space(Addr
VG_(valgrind_base) = (addr_t)&kickstart_base;
-
- // VG_(valgrind_end) has a slightly different meaning to all the other
- // VG_(*_end) vars -- ie. it names the last byte, whereas the others
- // go one byte past the end.
-
- VG_(valgrind_end) = ROUNDUP(argc_addr, 0x10000) - 1; // stack
+ VG_(valgrind_last) = ROUNDUP(argc_addr, 0x10000) - 1; // stack
// This gives the client the largest possible address space while
@@ -435,5 +428,5 @@ static void layout_remaining_space(Addr
"shadow_end %8x\n"
"valgrind_base %8x (%dMB)\n"
- "valgrind_end %8x\n",
+ "valgrind_last %8x\n",
VG_(client_base), SEGSIZE(client_base, client_mapbase),
VG_(client_mapbase), SEGSIZE(client_mapbase, client_end),
@@ -441,6 +434,6 @@ static void layout_remaining_space(Addr
VG_(shadow_base), SEGSIZE(shadow_base, shadow_end),
VG_(shadow_end),
- VG_(valgrind_base), SEGSIZE(valgrind_base, valgrind_end),
- VG_(valgrind_end)
+ VG_(valgrind_base), SEGSIZE(valgrind_base, valgrind_last),
+ VG_(valgrind_last)
);
@@ -2278,5 +2271,5 @@ static void build_valgrind_map_callback
start allocating more memory (note: heap is OK, it's just mmap
which is the problem here). */
- if (start >= VG_(valgrind_base) && (start+size) <= VG_(valgrind_end)) {
+ if (start >= VG_(valgrind_base) && (start+size-1) <= VG_(valgrind_last)) {
flags |= SF_VALGRIND;
VG_(map_file_segment)(start, size, prot, flags, dev, ino, foffset, filename);
@@ -2311,5 +2304,5 @@ static void build_segment_map_callback
flags |= SF_FILE;
- if (start >= VG_(valgrind_base) && (start+size) <= VG_(valgrind_end))
+ if (start >= VG_(valgrind_base) && (start+size-1) <= VG_(valgrind_last))
flags |= SF_VALGRIND;
@@ -2439,5 +2432,5 @@ void VG_(sanity_check_general) ( Bool fo
- -
| valgrind stack ^^^^^^^^^|
- valgrind_end +-------------------------+
+ valgrind_last +-------------------------+
: kernel :
--- valgrind/coregrind/vg_memory.c #1.67:1.68
@@ -494,5 +494,5 @@ Addr VG_(find_map_space)(Addr addr, UInt
Segment *s;
Addr ret;
- Addr limit = (for_client ? VG_(client_end) : VG_(valgrind_end));
+ Addr limit = (for_client ? VG_(client_end)-1 : VG_(valgrind_last));
if (addr == 0)
@@ -538,5 +538,5 @@ Addr VG_(find_map_space)(Addr addr, UInt
}
- if ((limit - len) < ret)
+ if (((limit - len)+1) < ret)
ret = 0; /* no space */
else
@@ -551,5 +551,5 @@ Addr VG_(find_map_space)(Addr addr, UInt
/* Pad the entire process address space, from VG_(client_base)
- to VG_(valgrind_end) by creating an anonymous and inaccessible
+ to VG_(valgrind_last) by creating an anonymous and inaccessible
mapping over any part of the address space which is not covered
by an entry in the segment list.
@@ -573,5 +573,5 @@ void VG_(pad_address_space)(void)
args[5] = 0;
- while (s && addr < VG_(valgrind_end)) {
+ while (s && addr <= VG_(valgrind_last)) {
if (addr < s->addr) {
args[0] = (UInt)addr;
@@ -585,7 +585,7 @@ void VG_(pad_address_space)(void)
}
- if (addr < VG_(valgrind_end)) {
+ if (addr <= VG_(valgrind_last)) {
args[0] = (UInt)addr;
- args[1] = VG_(valgrind_end) - addr;
+ args[1] = VG_(valgrind_last) - addr + 1;
ret = VG_(do_syscall)(__NR_mmap, (UInt)args);
@@ -603,5 +603,5 @@ void VG_(unpad_address_space)(void)
Int ret;
- while (s && addr < VG_(valgrind_end)) {
+ while (s && addr <= VG_(valgrind_last)) {
if (addr < s->addr) {
ret = VG_(do_syscall)(__NR_munmap, (UInt)addr, s->addr - addr);
@@ -612,6 +612,6 @@ void VG_(unpad_address_space)(void)
}
- if (addr < VG_(valgrind_end)) {
- ret = VG_(do_syscall)(__NR_munmap, (UInt)addr, VG_(valgrind_end) - addr);
+ if (addr <= VG_(valgrind_last)) {
+ ret = VG_(do_syscall)(__NR_munmap, addr, (VG_(valgrind_last) - addr) + 1);
}
@@ -794,5 +794,5 @@ Bool VG_(is_shadow_addr)(Addr a)
Bool VG_(is_valgrind_addr)(Addr a)
{
- return a >= VG_(valgrind_base) && a < VG_(valgrind_end);
+ return a >= VG_(valgrind_base) && a <= VG_(valgrind_last);
}
--- valgrind/coregrind/vg_mylibc.c #1.86:1.87
@@ -285,5 +285,5 @@ void* VG_(mmap)( void* start, UInt lengt
vg_assert(VG_(client_base) <= res && res+length < VG_(client_end));
} else {
- vg_assert(VG_(valgrind_base) <= res && res+length < VG_(valgrind_end));
+ vg_assert(VG_(valgrind_base) <= res && res+length <= VG_(valgrind_last));
}
@@ -1093,5 +1093,5 @@ static inline ExeContext *get_real_execo
asm("movl %%ebp, %0; movl %%esp, %1" : "=r" (ebp), "=r" (esp));
- stacktop = VG_(valgrind_end);
+ stacktop = VG_(valgrind_last);
VG_(get_sigstack_bounds)( &sigstack_low, &sigstack_high );
if (esp >= sigstack_low && esp < sigstack_high)
@@ -1664,5 +1664,5 @@ void* VG_(get_memory_from_mmap) ( Int nB
if (p != ((void*)(-1))) {
- vg_assert(p >= (void*)VG_(valgrind_base) && p < (void*)VG_(valgrind_end));
+ vg_assert(p >= (void*)VG_(valgrind_base) && p <= (void*)VG_(valgrind_last));
tot_alloc += (UInt)nBytes;
if (0)
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-07 22:38:33
|
CVS commit by nethercote:
Arch-abstraction:
- factored out pointercheck setup.
M +2 -0 core.h 1.16
M +2 -31 vg_main.c 1.207
M +28 -0 x86/state.c 1.4
--- valgrind/coregrind/core.h #1.15:1.16
@@ -1500,4 +1500,6 @@ extern void VGA_(load_state) ( arch_thre
extern void VGA_(save_state) ( arch_thread_t*, ThreadId tid );
+extern Bool VGA_(setup_pointercheck) ( void );
+
extern void VGA_(regs_for_ptrace_from_BB) ( struct user_regs_struct* regs );
extern void VGA_(regs_for_ptrace_from_tst) ( arch_thread_t* arch,
--- valgrind/coregrind/vg_main.c #1.206:1.207
@@ -2260,34 +2260,4 @@ Int VG_(helper_offset)(Addr a)
/*====================================================================*/
-/*=== Setup pointercheck ===*/
-/*====================================================================*/
-
-static void setup_pointercheck(void)
-{
- int ret;
-
- if (VG_(clo_pointercheck)) {
- vki_modify_ldt_t ldt = {
- VG_POINTERCHECK_SEGIDX, // entry_number
- VG_(client_base), // base_addr
- (VG_(client_end)-VG_(client_base)) / VKI_BYTES_PER_PAGE, // limit
- 1, // seg_32bit
- 0, // contents: data, RW, non-expanding
- 0, // ! read_exec_only
- 1, // limit_in_pages
- 0, // ! seg not present
- 1, // useable
- };
- ret = VG_(do_syscall)(__NR_modify_ldt, 1, &ldt, sizeof(ldt));
- if (ret < 0) {
- VG_(message)(Vg_UserMsg,
- "Warning: ignoring --pointercheck=yes, "
- "because modify_ldt failed (errno=%d)", -ret);
- VG_(clo_pointercheck) = False;
- }
- }
-}
-
-/*====================================================================*/
/*=== Initialise program data/text, etc. ===*/
/*====================================================================*/
@@ -2794,5 +2764,6 @@ int main(int argc, char **argv)
// p: process_cmd_line_options() [for VG_(clo_pointercheck)]
//--------------------------------------------------------------
- setup_pointercheck();
+ if (VG_(clo_pointercheck))
+ VG_(clo_pointercheck) = VGA_(setup_pointercheck)();
//--------------------------------------------------------------
--- valgrind/coregrind/x86/state.c #1.3:1.4
@@ -448,4 +448,32 @@ n",
/*------------------------------------------------------------*/
+/*--- pointercheck ---*/
+/*------------------------------------------------------------*/
+
+Bool VGA_(setup_pointercheck)(void)
+{
+ vki_modify_ldt_t ldt = {
+ VG_POINTERCHECK_SEGIDX, // entry_number
+ VG_(client_base), // base_addr
+ (VG_(client_end)-VG_(client_base)) / VKI_BYTES_PER_PAGE, // limit
+ 1, // seg_32bit
+ 0, // contents: data, RW, non-expanding
+ 0, // ! read_exec_only
+ 1, // limit_in_pages
+ 0, // ! seg not present
+ 1, // useable
+ };
+ int ret = VG_(do_syscall)(__NR_modify_ldt, 1, &ldt, sizeof(ldt));
+ if (ret < 0) {
+ VG_(message)(Vg_UserMsg,
+ "Warning: ignoring --pointercheck=yes, "
+ "because modify_ldt failed (errno=%d)", -ret);
+ return False;
+ } else {
+ return True;
+ }
+}
+
+/*------------------------------------------------------------*/
/*--- Debugger-related operations ---*/
/*------------------------------------------------------------*/
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-07 22:22:57
|
CVS commit by nethercote:
Arch-abstraction:
- factored out the setting of machine registers used when attaching the
debugger.
M +3 -0 core.h 1.15
M +4 -37 vg_main.c 1.206
M +46 -2 x86/state.c 1.3
--- valgrind/coregrind/core.h #1.14:1.15
@@ -1500,4 +1500,7 @@ extern void VGA_(load_state) ( arch_thre
extern void VGA_(save_state) ( arch_thread_t*, ThreadId tid );
+extern void VGA_(regs_for_ptrace_from_BB) ( struct user_regs_struct* regs );
+extern void VGA_(regs_for_ptrace_from_tst) ( arch_thread_t* arch,
+ struct user_regs_struct* regs );
/* ---------------------------------------------------------------------
--- valgrind/coregrind/vg_main.c #1.205:1.206
@@ -246,41 +246,8 @@ void VG_(start_debugger) ( Int tid )
Int res;
- if (VG_(is_running_thread)( tid )) {
- regs.cs = VG_(baseBlock)[VGOFF_(m_cs)];
- regs.ss = VG_(baseBlock)[VGOFF_(m_ss)];
- regs.ds = VG_(baseBlock)[VGOFF_(m_ds)];
- regs.es = VG_(baseBlock)[VGOFF_(m_es)];
- regs.fs = VG_(baseBlock)[VGOFF_(m_fs)];
- regs.gs = VG_(baseBlock)[VGOFF_(m_gs)];
- regs.eax = VG_(baseBlock)[VGOFF_(m_eax)];
- regs.ebx = VG_(baseBlock)[VGOFF_(m_ebx)];
- regs.ecx = VG_(baseBlock)[VGOFF_(m_ecx)];
- regs.edx = VG_(baseBlock)[VGOFF_(m_edx)];
- regs.esi = VG_(baseBlock)[VGOFF_(m_esi)];
- regs.edi = VG_(baseBlock)[VGOFF_(m_edi)];
- regs.ebp = VG_(baseBlock)[VGOFF_(m_ebp)];
- regs.esp = VG_(baseBlock)[VGOFF_(m_esp)];
- regs.eflags = VG_(baseBlock)[VGOFF_(m_eflags)];
- regs.eip = VG_(baseBlock)[VGOFF_(m_eip)];
- } else {
- ThreadState* tst = & VG_(threads)[ tid ];
-
- regs.cs = tst->arch.m_cs;
- regs.ss = tst->arch.m_ss;
- regs.ds = tst->arch.m_ds;
- regs.es = tst->arch.m_es;
- regs.fs = tst->arch.m_fs;
- regs.gs = tst->arch.m_gs;
- regs.eax = tst->arch.m_eax;
- regs.ebx = tst->arch.m_ebx;
- regs.ecx = tst->arch.m_ecx;
- regs.edx = tst->arch.m_edx;
- regs.esi = tst->arch.m_esi;
- regs.edi = tst->arch.m_edi;
- regs.ebp = tst->arch.m_ebp;
- regs.esp = tst->arch.m_esp;
- regs.eflags = tst->arch.m_eflags;
- regs.eip = tst->arch.m_eip;
- }
+ if (VG_(is_running_thread)( tid ))
+ VGA_(regs_for_ptrace_from_BB)(®s);
+ else
+ VGA_(regs_for_ptrace_from_tst)(&VG_(threads)[tid].arch, ®s);
if ((res = VG_(waitpid)(pid, &status, 0)) == pid &&
--- valgrind/coregrind/x86/state.c #1.2:1.3
@@ -32,5 +32,5 @@
/*------------------------------------------------------------*/
-/*--- baseBlock setup ---*/
+/*--- baseBlock setup and operations ---*/
/*------------------------------------------------------------*/
@@ -448,4 +447,49 @@ n",
}
+/*------------------------------------------------------------*/
+/*--- Debugger-related operations ---*/
+/*------------------------------------------------------------*/
+
+void VGA_(regs_for_ptrace_from_BB)(struct user_regs_struct* regs)
+{
+ regs->cs = VG_(baseBlock)[VGOFF_(m_cs)];
+ regs->ss = VG_(baseBlock)[VGOFF_(m_ss)];
+ regs->ds = VG_(baseBlock)[VGOFF_(m_ds)];
+ regs->es = VG_(baseBlock)[VGOFF_(m_es)];
+ regs->fs = VG_(baseBlock)[VGOFF_(m_fs)];
+ regs->gs = VG_(baseBlock)[VGOFF_(m_gs)];
+ regs->eax = VG_(baseBlock)[VGOFF_(m_eax)];
+ regs->ebx = VG_(baseBlock)[VGOFF_(m_ebx)];
+ regs->ecx = VG_(baseBlock)[VGOFF_(m_ecx)];
+ regs->edx = VG_(baseBlock)[VGOFF_(m_edx)];
+ regs->esi = VG_(baseBlock)[VGOFF_(m_esi)];
+ regs->edi = VG_(baseBlock)[VGOFF_(m_edi)];
+ regs->ebp = VG_(baseBlock)[VGOFF_(m_ebp)];
+ regs->esp = VG_(baseBlock)[VGOFF_(m_esp)];
+ regs->eflags = VG_(baseBlock)[VGOFF_(m_eflags)];
+ regs->eip = VG_(baseBlock)[VGOFF_(m_eip)];
+}
+
+void VGA_(regs_for_ptrace_from_tst)(arch_thread_t *tst,
+ struct user_regs_struct* regs)
+{
+ regs->cs = tst->m_cs;
+ regs->ss = tst->m_ss;
+ regs->ds = tst->m_ds;
+ regs->es = tst->m_es;
+ regs->fs = tst->m_fs;
+ regs->gs = tst->m_gs;
+ regs->eax = tst->m_eax;
+ regs->ebx = tst->m_ebx;
+ regs->ecx = tst->m_ecx;
+ regs->edx = tst->m_edx;
+ regs->esi = tst->m_esi;
+ regs->edi = tst->m_edi;
+ regs->ebp = tst->m_ebp;
+ regs->esp = tst->m_esp;
+ regs->eflags = tst->m_eflags;
+ regs->eip = tst->m_eip;
+}
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-07 10:17:19
|
CVS commit by nethercote:
Arch-abstraction:
- Moved VG_MAX_REALREGS into x86/ part.
- Tweaked basic types so they're suitable for both 32-bit and 64-bit platforms.
Main change was to change 'Addr' to "unsigned long" which is the same size as
a pointer. Had to make a couple of minor changes to accommodate this.
Also, introduced 'UWord' and 'Word' types which will be necessary for making
code 64-bit clean.
M +1 -1 coregrind/core.h 1.14
M +7 -5 coregrind/vg_main.c 1.205 [POSSIBLY UNSAFE: printf]
M +3 -3 coregrind/vg_procselfmaps.c 1.13
M +3 -3 helgrind/hg_main.c 1.84
M +18 -27 include/tool.h.base 1.7
M +17 -0 include/x86/tool_arch.h 1.4
--- valgrind/coregrind/core.h #1.13:1.14
@@ -1473,5 +1473,5 @@ extern void VG_(missing_tool_func) ( con
/* ---------------------------------------------------------------------
- The state of the simulated CPU.
+ The baseBlock -- arch-neutral bits
------------------------------------------------------------------ */
--- valgrind/coregrind/vg_main.c #1.204:1.205
@@ -1027,7 +1027,8 @@ static Addr setup_client_stack(char **or
if (0)
printf("stringsize=%d auxsize=%d stacksize=%d\n"
- "clstk_base %x\n"
- "clstk_end %x\n",
- stringsize, auxsize, stacksize, VG_(clstk_base), VG_(clstk_end));
+ "clstk_base %p\n"
+ "clstk_end %p\n",
+ stringsize, auxsize, stacksize,
+ (void*)VG_(clstk_base), (void*)VG_(clstk_end));
@@ -2646,6 +2647,7 @@ int main(int argc, char **argv)
if (0)
- printf("entry=%x client esp=%x vg_argc=%d brkbase=%x\n",
- client_eip, esp_at_startup, vg_argc, VG_(brk_base));
+ printf("entry=%p client esp=%p vg_argc=%d brkbase=%p\n",
+ (void*)client_eip, (void*)esp_at_startup, vg_argc,
+ (void*)VG_(brk_base));
//==============================================================
--- valgrind/coregrind/vg_procselfmaps.c #1.12:1.13
@@ -64,5 +64,5 @@ static Int readchar ( Char* buf, Char* c
}
-static Int readhex ( Char* buf, UInt* val )
+static Int readhex ( Char* buf, UWord* val )
{
Int n = 0;
@@ -149,7 +149,7 @@ void VG_(parse_procselfmaps) (
Addr start, endPlusOne;
UChar* filename;
- UInt foffset;
UChar rr, ww, xx, pp, ch, tmp;
- UInt maj, min, ino;
+ UInt ino;
+ UWord foffset, maj, min;
sk_assert( '\0' != procmap_buf[0] && 0 != buf_n_tot);
--- valgrind/helgrind/hg_main.c #1.83:1.84
@@ -1712,5 +1712,5 @@ static void bus_unlock(void);
static
void eraser_pre_mem_read(CorePart part, ThreadId tid,
- Char* s, UInt base, UInt size )
+ Char* s, Addr base, UInt size )
{
if (tid > 50) { VG_(printf)("pid = %d, s = `%s`, part = %d\n", tid, s, part); VG_(skin_panic)("a");}
@@ -1720,5 +1720,5 @@ void eraser_pre_mem_read(CorePart part,
static
void eraser_pre_mem_read_asciiz(CorePart part, ThreadId tid,
- Char* s, UInt base )
+ Char* s, Addr base )
{
eraser_mem_read(base, VG_(strlen)((Char*)base), tid);
@@ -1727,5 +1727,5 @@ void eraser_pre_mem_read_asciiz(CorePart
static
void eraser_pre_mem_write(CorePart part, ThreadId tid,
- Char* s, UInt base, UInt size )
+ Char* s, Addr base, UInt size )
{
eraser_mem_write(base, size, tid);
--- valgrind/include/tool.h.base #1.6:1.7
@@ -41,17 +41,24 @@
/*====================================================================*/
-typedef unsigned char UChar;
-typedef unsigned short UShort;
-typedef unsigned int UInt;
-typedef unsigned long long int ULong;
-
-typedef signed char Char;
-typedef signed short Short;
-typedef signed int Int;
-typedef signed long long int Long;
+// By choosing the right types, we can get these right for 32-bit and 64-bit
+// platforms without having to do any conditional compilation or anything.
+//
+// Size in bits on: 32-bit archs 64-bit archs
+// ------------ ------------
+typedef unsigned char UChar; // 8 8
+typedef unsigned short UShort; // 16 16
+typedef unsigned int UInt; // 32 32
+typedef unsigned long UWord; // 32 64
+typedef unsigned long long ULong; // 64 64
+
+typedef signed char Char; // 8 8
+typedef signed short Short; // 16 16
+typedef signed int Int; // 32 32
+typedef signed long Word; // 32 64
+typedef signed long long Long; // 64 64
-typedef unsigned int Addr;
+typedef UWord Addr; // 32 64
-typedef unsigned char Bool;
+typedef UChar Bool; // 8 8
#define False ((Bool)0)
#define True ((Bool)1)
@@ -90,20 +97,4 @@
#define VG_N_THREAD_KEYS 50
-/* Total number of integer registers available for allocation -- all of
- them except %esp, %ebp. %ebp permanently points at VG_(baseBlock).
-
- If you increase this you'll have to also change at least these:
- - VG_(rank_to_realreg)()
- - VG_(realreg_to_rank)()
- - ppRegsLiveness()
- - the RegsLive type (maybe -- RegsLive type must have more than
- VG_MAX_REALREGS bits)
-
- You can decrease it, and performance will drop because more spills will
- occur. If you decrease it too much, everything will fall over.
-
- Do not change this unless you really know what you are doing! */
-#define VG_MAX_REALREGS 6
-
/*====================================================================*/
--- valgrind/include/x86/tool_arch.h #1.3:1.4
@@ -49,4 +49,21 @@
#define MAX_INSTR_SIZE 16
+/* Total number of integer registers available for allocation -- all of
+ them except %esp (points to Valgrind's stack) and %ebp (permanently
+ points at the baseBlock).
+
+ If you increase this you'll have to also change at least these:
+ - VG_(rank_to_realreg)()
+ - VG_(realreg_to_rank)()
+ - ppRegsLiveness()
+ - the RegsLive type (maybe -- RegsLive type must have more than
+ VG_MAX_REALREGS bits)
+
+ You can decrease it, and performance will drop because more spills will
+ occur. If you decrease it too much, everything will fall over.
+
+ Do not change this unless you really know what you are doing! */
+#define VG_MAX_REALREGS 6
+
/*====================================================================*/
|
|
From: Tom H. <th...@cy...> - 2004-09-07 03:14:22
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-09-07 02:00:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow map_unmap: valgrind ./map_unmap mq: valgrind ./mq mremap: valgrind ./mremap munmap_exe: valgrind ./munmap_exe pth_blockedsig: valgrind ./pth_blockedsig pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv rlimit_nofile: valgrind ./rlimit_nofile seg_override: valgrind ./seg_override sem: valgrind ./sem semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 Could not read `smc1.stderr.exp' make: *** [regtest] Error 2 |
|
From: <js...@ac...> - 2004-09-07 02:55:37
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2004-09-07 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow sem: valgrind ./sem semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 174 tests, 4 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_fcntl (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-09-07 02:26:29
|
Nightly build on dunsmere ( Fedora Core 2 ) started at 2004-09-07 03:20:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 8 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/writev (stderr) none/tests/exec-sigmask (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-07 02:20:17
|
Nightly build on audi ( Red Hat 9 ) started at 2004-09-07 03:15:11 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 8 stderr failures, 0 stdout failures ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-07 02:13:25
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-09-07 03:10:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow seg_override: valgrind ./seg_override sem: valgrind ./sem semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 3 stderr failures, 0 stdout failures ================= helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-07 02:08:31
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-09-07 03:05:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow -- Finished tests in none/tests ---------------------------------------- == 179 tests, 14 stderr failures, 1 stdout failure ================= addrcheck/tests/toobig-allocs (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/mismatches (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/writev (stderr) none/tests/coolo_sigaction (stderr) none/tests/gxx304 (stderr) make: *** [regtest] Error 1 |