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
(5) |
2
(3) |
|
3
(2) |
4
(3) |
5
(16) |
6
(8) |
7
(6) |
8
(2) |
9
(4) |
|
10
(10) |
11
(22) |
12
(7) |
13
(10) |
14
(11) |
15
(8) |
16
(6) |
|
17
(11) |
18
|
19
(6) |
20
(8) |
21
(5) |
22
(11) |
23
(6) |
|
24
(1) |
25
(6) |
26
(4) |
27
(2) |
28
(1) |
29
|
30
(2) |
|
31
(5) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2015-05-20 15:14:08
|
Author: florian
Date: Wed May 20 16:14:00 2015
New Revision: 15264
Log:
Fix rounding when printing floating point numbers.
Modified:
trunk/coregrind/m_debuglog.c
trunk/none/tests/unit_debuglog.c
trunk/none/tests/unit_debuglog.stderr.exp
Modified: trunk/coregrind/m_debuglog.c
==============================================================================
--- trunk/coregrind/m_debuglog.c (original)
+++ trunk/coregrind/m_debuglog.c Wed May 20 16:14:00 2015
@@ -1006,10 +1006,17 @@
/* Silently limit the precision to 10 digits. */
if (precision > 10) precision = 10;
- /* If fracional part is not printed (precision == 0), may have to
- round up */
- if (precision == 0 && frac >= 0.5)
+ /* Determine fractional part, possibly round up */
+ ULong factor = 1;
+ for (cnt = 0; cnt < precision; ++cnt)
+ factor *= 10;
+ ULong frval = frac * factor;
+ if ((frac * factor - frval) > 0.5) // round up
+ frval += 1;
+ /* Check rounding. */
+ if (frval == factor)
ipval += 1;
+ frval %= factor;
/* Find out how many characters are needed to print the number */
@@ -1046,14 +1053,6 @@
send('.', send_arg2);
ret += 1;
- // Fractional part
- ULong factor = 1;
- for (cnt = 0; cnt < precision; ++cnt)
- factor *= 10;
- ULong frval = frac * factor;
- if ((frac * factor - frval) > 0.5) // round up
- frval += 1;
- frval %= factor;
ret += myvprintf_int64(send, send_arg2, VG_MSG_ZJUSTIFY, 10,
precision, False, frval);
}
Modified: trunk/none/tests/unit_debuglog.c
==============================================================================
--- trunk/none/tests/unit_debuglog.c (original)
+++ trunk/none/tests/unit_debuglog.c Wed May 20 16:14:00 2015
@@ -149,5 +149,13 @@
run("|%100lld|", ival);
run("|%*lld|", 13, ival);
+ value = 0.99685224;
+ run("|%3.0f|", value);
+ run("|%3.1f|", value);
+ run("|%3.2f|", value);
+ run("|%3.3f|", value);
+ run("|%3.4f|", value);
+ run("|%3.5f|", value);
+
return 0;
}
Modified: trunk/none/tests/unit_debuglog.stderr.exp
==============================================================================
--- trunk/none/tests/unit_debuglog.stderr.exp (original)
+++ trunk/none/tests/unit_debuglog.stderr.exp Wed May 20 16:14:00 2015
@@ -127,3 +127,15 @@
|%100lld| debuglog = | -1004005| wrote 102 chars
|%*lld| printf = | -1004005| wrote 15 chars
|%*lld| debuglog = | -1004005| wrote 15 chars
+|%3.0f| printf = | 1| wrote 5 chars
+|%3.0f| debuglog = | 1| wrote 5 chars
+|%3.1f| printf = |1.0| wrote 5 chars
+|%3.1f| debuglog = |1.0| wrote 5 chars
+|%3.2f| printf = |1.00| wrote 6 chars
+|%3.2f| debuglog = |1.00| wrote 6 chars
+|%3.3f| printf = |0.997| wrote 7 chars
+|%3.3f| debuglog = |0.997| wrote 7 chars
+|%3.4f| printf = |0.9969| wrote 8 chars
+|%3.4f| debuglog = |0.9969| wrote 8 chars
+|%3.5f| printf = |0.99685| wrote 9 chars
+|%3.5f| debuglog = |0.99685| wrote 9 chars
|
|
From: <sv...@va...> - 2015-05-20 15:08:21
|
Author: philippe
Date: Wed May 20 16:08:09 2015
New Revision: 15263
Log:
Have the hash table 'gen' functions comparing the key instead of the
cmp function.
Document this in the cmp function comment in pub_tool_hashtable.h
Modified:
trunk/coregrind/m_deduppoolalloc.c
trunk/coregrind/m_hashtable.c
trunk/include/pub_tool_hashtable.h
Modified: trunk/coregrind/m_deduppoolalloc.c
==============================================================================
--- trunk/coregrind/m_deduppoolalloc.c (original)
+++ trunk/coregrind/m_deduppoolalloc.c Wed May 20 16:08:09 2015
@@ -177,16 +177,19 @@
}
}
+/* Compare function for 'gen' hash table. No need to compare the key
+ in this function, as the hash table already does it for us,
+ and that in any case, if the data is equal, the keys must also be
+ equal. */
static Word cmp_pool_elt (const void* node1, const void* node2 )
{
const ht_node* hnode1 = node1;
const ht_node* hnode2 = node2;
- if (hnode1->key < hnode2->key)
- return -1;
- else if (hnode1->key > hnode2->key)
- return 1;
- else if (hnode1->eltSzB == hnode2->eltSzB)
+ /* As this function is called by hashtable, that has already checked
+ for key equality, it is likely that it is the 'good' element.
+ So, we handle the equal case first. */
+ if (hnode1->eltSzB == hnode2->eltSzB)
return VG_(memcmp) (hnode1->elt, hnode2->elt, hnode1->eltSzB);
else if (hnode1->eltSzB < hnode2->eltSzB)
return -1;
Modified: trunk/coregrind/m_hashtable.c
==============================================================================
--- trunk/coregrind/m_hashtable.c (original)
+++ trunk/coregrind/m_hashtable.c Wed May 20 16:08:09 2015
@@ -179,7 +179,7 @@
VgHashNode* curr = table->chains[ CHAIN_NO(hnode->key, table) ]; // GEN!!!
while (curr) {
- if (cmp (hnode, curr) == 0) { // GEN!!!
+ if (hnode->key == curr->key && cmp (hnode, curr) == 0) { // GEN!!!
return curr;
}
curr = curr->next;
@@ -222,7 +222,7 @@
table->iterOK = False;
while (curr) {
- if (cmp(hnode, curr) == 0) { // GEN!!!
+ if (hnode->key == curr->key && cmp(hnode, curr) == 0) { // GEN!!!
*prev_next_ptr = curr->next;
table->n_elements--;
return curr;
Modified: trunk/include/pub_tool_hashtable.h
==============================================================================
--- trunk/include/pub_tool_hashtable.h (original)
+++ trunk/include/pub_tool_hashtable.h Wed May 20 16:08:09 2015
@@ -84,7 +84,10 @@
* when comparing the rest of the node, if the node data contains holes
between components, either the node memory should be fully initialised
(e.g. allocated using VG_(calloc)) or each component should be compared
- individually. */
+ individually.
+ Note that the cmp function is only called for elements that already
+ have keys that are equal. So, it is not needed for cmp to check for
+ key equality. */
extern void* VG_(HT_gen_lookup) ( const VgHashTable *table, const void* node,
HT_Cmp_t cmp );
extern void* VG_(HT_gen_remove) ( VgHashTable *table, const void* node,
|
|
From: <sv...@va...> - 2015-05-20 14:33:38
|
Author: philippe
Date: Wed May 20 15:33:30 2015
New Revision: 15262
Log:
Improve presentation of first line of --profile-heap=yes
(i.e. use
-------- Arena "client": 4,194,304/4,194,304 max/cu...
instead of
-------- Arena "client": 4194304/4194304 max/cu....
Modified:
trunk/coregrind/m_mallocfree.c
Modified: trunk/coregrind/m_mallocfree.c
==============================================================================
--- trunk/coregrind/m_mallocfree.c (original)
+++ trunk/coregrind/m_mallocfree.c Wed May 20 15:33:30 2015
@@ -1404,9 +1404,9 @@
sanity_check_malloc_arena(aid);
VG_(printf)(
- "-------- Arena \"%s\": %lu/%lu max/curr mmap'd, "
+ "-------- Arena \"%s\": %'lu/%'lu max/curr mmap'd, "
"%llu/%llu unsplit/split sb unmmap'd, "
- "%lu/%lu max/curr on_loan %lu rzB --------\n",
+ "%'lu/%'lu max/curr on_loan %lu rzB --------\n",
a->name, a->stats__bytes_mmaped_max, a->stats__bytes_mmaped,
a->stats__nreclaim_unsplit, a->stats__nreclaim_split,
a->stats__bytes_on_loan_max, a->stats__bytes_on_loan,
|
|
From: Florian K. <fl...@ei...> - 2015-05-20 13:53:39
|
On 19.05.2015 23:23, Philippe Waroquiers wrote: > On Tue, 2015-05-19 at 17:33 +0200, Julian Seward wrote: >> I was thinking about moving error-count printing to its own flag >> >> --show-error-counts=no|yes [no] >> Seems a bit of an ad-hoc solution. And we already have MANY command line options. I agree with Philippe that the logging stuff needs to be redone so we can select what we want to see and at what levels of detail. Adding more observability would also be good fo unit testing.. Something like --vtrace=<component>:<level of detail> e.d. --vtrace=signals:2 or --vtrace=aspacemgr:4 I don't think this would be that much work to do, actually, given sufficient supply of beer which can always be arranged.... What would be more work is to decide what kinds of messages are meant for users and what are for developers... I'd say: if you can reasonably filter the output, go for that. Florian |
On 14.05.2015 09:15, Julian Seward wrote: > > On 14/05/15 01:13, Philippe Waroquiers wrote: >> Tools are also not working with constants while they are working >> with enum (e.g. emacs find-tag does not work with HChar >> constants, and works with enum values). > > enums are type-checkable; chars aren't really. I must say I would > also prefer if this was done with an enum. I didn't think this would be controversial given the precedent mc_translate.c::assignNew Anyhow... r15261. Florian |
Author: florian
Date: Wed May 20 14:33:06 2015
New Revision: 15261
Log:
Use an enum type.
Modified:
branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-common.c
branches/ASPACEM_TWEAKS/coregrind/m_signals.c
branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-main.c
branches/ASPACEM_TWEAKS/coregrind/pub_core_aspacemgr.h
Modified: branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c Wed May 20 14:33:06 2015
@@ -1266,7 +1266,7 @@
'U' ADDR must be unmapped
'*' ADDR can be mapped or unmapped
*/
-Bool VG_(am_addr_is_in_extensible_client_stack)( Addr addr, HChar kind )
+Bool VG_(am_addr_is_in_extensible_client_stack)( Addr addr, MapKind kind )
{
const NSegment *seg = nsegments + find_nsegment_idx(addr);
@@ -1279,7 +1279,7 @@
return False;
case SkResvn: {
- if (kind == 'M') return False;
+ if (kind == MkMapped) return False;
if (seg->smode != SmUpper) return False;
/* If the the abutting segment towards higher addresses is an SkAnonC
segment, then ADDR is a future stack pointer. */
@@ -1293,7 +1293,7 @@
case SkAnonC: {
/* If the abutting segment towards lower addresses is an SkResvn
segment, then ADDR is a stack pointer into mapped memory. */
- if (kind == 'U') return False;
+ if (kind == MkUnmapped) return False;
const NSegment *next = VG_(am_next_nsegment)(seg, /*forward*/ False);
if (next == NULL || next->kind != SkResvn || next->smode != SmUpper)
return False;
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-common.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-common.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-common.c Wed May 20 14:33:06 2015
@@ -64,7 +64,7 @@
/* If the sigframe is allocated on an alternate stack, then we cannot
extend that stack. Nothing to do here. */
stackseg = VG_(am_find_nsegment)(addr);
- } else if (VG_(am_addr_is_in_extensible_client_stack)(addr, '*')) {
+ } else if (VG_(am_addr_is_in_extensible_client_stack)(addr, MkAny)) {
if (VG_(extend_stack)(tid, addr)) {
stackseg = VG_(am_find_nsegment)(addr);
if (0 && stackseg)
Modified: branches/ASPACEM_TWEAKS/coregrind/m_signals.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_signals.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_signals.c Wed May 20 14:33:06 2015
@@ -1736,7 +1736,7 @@
if (tid == 1) { // main thread
Addr esp = VG_(get_SP)(tid);
Addr base = VG_PGROUNDDN(esp - VG_STACK_REDZONE_SZB);
- if (VG_(am_addr_is_in_extensible_client_stack)(base, '*') &&
+ if (VG_(am_addr_is_in_extensible_client_stack)(base, MkAny) &&
VG_(extend_stack)(tid, base)) {
if (VG_(clo_trace_signals))
VG_(dmsg)(" -> extended stack base to %#lx\n",
@@ -2428,7 +2428,7 @@
}
if (info->si_code == VKI_SEGV_MAPERR
- && VG_(am_addr_is_in_extensible_client_stack)(fault, 'U')
+ && VG_(am_addr_is_in_extensible_client_stack)(fault, MkUnmapped)
&& fault >= fault_mask(esp - VG_STACK_REDZONE_SZB)) {
/* If the fault address is above esp but below the current known
stack segment base, and it was a fault because there was
@@ -2436,7 +2436,7 @@
then extend the stack segment.
*/
Addr base = VG_PGROUNDDN(esp - VG_STACK_REDZONE_SZB);
- if (VG_(am_addr_is_in_extensible_client_stack)(base, '*') &&
+ if (VG_(am_addr_is_in_extensible_client_stack)(base, MkAny) &&
VG_(extend_stack)(tid, base)) {
if (VG_(clo_trace_signals))
VG_(dmsg)(" -> extended stack base to %#lx\n",
Modified: branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c Wed May 20 14:33:06 2015
@@ -3662,7 +3662,7 @@
vg_assert(grows == VKI_PROT_GROWSDOWN);
- if (VG_(am_addr_is_in_extensible_client_stack)(ARG1, 'M')) {
+ if (VG_(am_addr_is_in_extensible_client_stack)(ARG1, MkMapped)) {
const NSegment *aseg = VG_(am_find_nsegment)(ARG1);
Addr end = ARG1 + ARG2;
ARG1 = aseg->start;
Modified: branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-main.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-main.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-main.c Wed May 20 14:33:06 2015
@@ -1550,7 +1550,7 @@
So the approximation we're taking here is to extend the stack only
if the client stack pointer does not look bogus. */
- if (VG_(am_addr_is_in_extensible_client_stack)(stackMin, '*'))
+ if (VG_(am_addr_is_in_extensible_client_stack)(stackMin, MkAny))
VG_(extend_stack)( tid, stackMin );
}
# endif
Modified: branches/ASPACEM_TWEAKS/coregrind/pub_core_aspacemgr.h
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/pub_core_aspacemgr.h (original)
+++ branches/ASPACEM_TWEAKS/coregrind/pub_core_aspacemgr.h Wed May 20 14:33:06 2015
@@ -47,6 +47,13 @@
/* types SegKind, ShrinkMode and NSegment are described in
the tool-visible header file, not here. */
+/* Describes whether an address is mapped or unmapped/ */
+typedef
+ enum {
+ MkMapped = 0x1,
+ MkUnmapped = 0x2,
+ MkAny = MkMapped | MkUnmapped
+ } MapKind;
//--------------------------------------------------------------
// Initialisation
@@ -90,7 +97,8 @@
/* Check whether ADDR looks like an address or address-to-be located in an
extensible client stack segment. */
-extern Bool VG_(am_addr_is_in_extensible_client_stack)( Addr addr, HChar kind );
+extern Bool VG_(am_addr_is_in_extensible_client_stack)( Addr addr,
+ MapKind kind );
/* If ADDR is located in a segment that looks like a stack segment, return
the start and end addresses of that segment. */
|
Author: rhyskidd
Date: Wed May 20 14:31:02 2015
New Revision: 15260
Log:
Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
bz#344936
Before:
== 595 tests, 229 stderr failures, 23 stdout failures, 1 stderrB failure, 1 stdoutB failure, 30 post failures ==
After:
== 595 tests, 228 stderr failures, 23 stdout failures, 1 stderrB failure, 1 stdoutB failure, 30 post failures ==
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/include/vki/vki-scnums-darwin.h
trunk/none/tests/procfs-non-linux.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 20 14:31:02 2015
@@ -175,6 +175,7 @@
344621 Fix memcheck/tests/err_disable4 test on OS X
344686 Fix suppression for pthread_rwlock_init on OS X 10.10
344702 Fix missing libobjc suppressions on OS X 10.10
+344936 Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
344939 Fix memcheck/tests/xml1 on OS X 10.10
345016 helgrind/tests/locked_vs_unlocked2 is failing sometimes
345079 Fix build problems in VEX/useful/test_main.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
==============================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-darwin.h (original)
+++ trunk/coregrind/m_syswrap/priv_syswrap-darwin.h Wed May 20 14:31:02 2015
@@ -547,7 +547,7 @@
// NYI fstatat64 // 470
// NYI linkat // 471
// NYI unlinkat // 472
-// NYI readlinkat // 473
+DECL_TEMPLATE(darwin, readlinkat); // 473
// NYI symlinkat // 474
// NYI mkdirat // 475
// NYI getattrlistat // 476
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c Wed May 20 14:31:02 2015
@@ -9308,6 +9308,28 @@
POST_MEM_WRITE(ARG3, ARG4);
}
+PRE(readlinkat)
+{
+ Word saved = SYSNO;
+
+ PRINT("readlinkat ( %ld, %#lx(%s), %#lx, %llu )", ARG1,ARG2,(char*)ARG2,ARG3,(ULong)ARG4);
+ PRE_REG_READ4(long, "readlinkat",
+ int, dfd, const char *, path, char *, buf, int, bufsiz);
+ PRE_MEM_RASCIIZ( "readlinkat(path)", ARG2 );
+ PRE_MEM_WRITE( "readlinkat(buf)", ARG3,ARG4 );
+
+ /*
+ * Refer to coregrind/m_syswrap/syswrap-linux.c
+ */
+ {
+ /* Normal case */
+ SET_STATUS_from_SysRes( VG_(do_syscall4)(saved, ARG1, ARG2, ARG3, ARG4));
+ }
+
+ if (SUCCESS && RES > 0)
+ POST_MEM_WRITE( ARG3, RES );
+}
+
PRE(bsdthread_ctl)
{
// int bsdthread_ctl(user_addr_t cmd, user_addr_t arg1,
@@ -9863,6 +9885,7 @@
MACXY(__NR_sysctlbyname, sysctlbyname), // 274
MACXY(__NR_necp_match_policy, necp_match_policy), // 460
MACXY(__NR_getattrlistbulk, getattrlistbulk), // 461
+ MACX_(__NR_readlinkat, readlinkat), // 473
MACX_(__NR_bsdthread_ctl, bsdthread_ctl), // 478
MACX_(__NR_guarded_open_dprotected_np, guarded_open_dprotected_np),
MACX_(__NR_guarded_write_np, guarded_write_np),
Modified: trunk/include/vki/vki-scnums-darwin.h
==============================================================================
--- trunk/include/vki/vki-scnums-darwin.h (original)
+++ trunk/include/vki/vki-scnums-darwin.h Wed May 20 14:31:02 2015
@@ -714,6 +714,7 @@
#if DARWIN_VERS >= DARWIN_10_10
#define __NR_necp_match_policy VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(460)
#define __NR_getattrlistbulk VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(461)
+#define __NR_readlinkat VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(473)
#define __NR_bsdthread_ctl VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(478)
#define __NR_guarded_open_dprotected_np VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(484)
#define __NR_guarded_write_np VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(485)
Modified: trunk/none/tests/procfs-non-linux.stderr.exp
==============================================================================
--- trunk/none/tests/procfs-non-linux.stderr.exp (original)
+++ trunk/none/tests/procfs-non-linux.stderr.exp Wed May 20 14:31:02 2015
@@ -5,6 +5,6 @@
open(): No such file or directory
readlink: No such file or directory
readlink: No such file or directory
-readlinkat: Function not implemented
-readlinkat: Function not implemented
+readlinkat: No such file or directory
+readlinkat: No such file or directory
|
|
From: <sv...@va...> - 2015-05-20 11:31:43
|
Author: rhyskidd
Date: Wed May 20 12:31:35 2015
New Revision: 15259
Log:
Improve documentation of syscall: unix: 44 profil() which was deprecated around OS X 10.6 and removed from the xnu kernel shipped with OS X 10.7. See unresolved bz#264253.
Modified:
trunk/coregrind/m_syswrap/syswrap-darwin.c
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c Wed May 20 12:31:35 2015
@@ -9414,7 +9414,11 @@
GENXY(__NR_dup, sys_dup),
MACXY(__NR_pipe, pipe),
GENX_(__NR_getegid, sys_getegid),
-// _____(__NR_profil),
+#if DARWIN_VERS >= DARWIN_10_7
+ _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(44)), // old profil
+#else
+// _____(__NR_profil),
+#endif
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(45)), // old ktrace
MACXY(__NR_sigaction, sigaction),
GENX_(__NR_getgid, sys_getgid),
|