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
|
3
(6) |
4
(1) |
5
(1) |
6
(2) |
|
7
(4) |
8
(7) |
9
(1) |
10
(2) |
11
(1) |
12
(4) |
13
|
|
14
(3) |
15
(2) |
16
(6) |
17
(10) |
18
(8) |
19
|
20
|
|
21
|
22
(5) |
23
(12) |
24
(5) |
25
|
26
(5) |
27
(1) |
|
28
(1) |
29
(2) |
|
|
|
|
|
|
From: Gopal R. p. <gop...@gm...> - 2016-02-07 14:03:53
|
Dear All, I am facing issue in porting valgrind on arm-linux, can anyone help me in this respect. Regards, Gopal |
|
From: William G. <app...@li...> - 2016-02-07 03:22:37
|
Thanks for your response I. Very helpful slides. As a follow up question is it possible to use thread local storage in a valgrind tool? ________________________________ From: Ivo Raisr <iv...@iv...> Sent: Saturday, February 6, 2016 5:33:36 AM To: William Good Cc: val...@li... Subject: Re: [Valgrind-developers] Using lock in tool 2016-02-06 5:07 GMT+01:00 William Good <app...@li...<mailto:app...@li...>>: The table needs to be thread safe because different threads will be using it at run time. I cannot use a pthread_mutex in my tool, correct? How can I make a lock for the table? Hi Bill, Valgrind runs properly multi-threaded applications, but effectively only uses one vCPU at a time to run them. In other words, Valgrind does not use multiple CPUs when running a multi-threaded application. So far no Valgrind analysis tool (except 'none') is designed such that it is multi-thread safe. They all leverage the fact there is always single thread running. See Philippe's presentation about multi-thread Valgrind prototype from FOSDEM 2015: https://archive.fosdem.org/2015/schedule/event/valgrind_multi_prototype/ It goes to a great length in what and where is not multi-thread safe and how come Valgrind is able to run multi-thread applications properly. An ideal situation would be if Valgrind core provides efficient synchronization mechanisms which all analysis tools can consume. Maybe Philippe could comment if there is anything usable from his prototype. I. |
|
From: Ivo R. <iv...@iv...> - 2016-02-06 10:33:44
|
2016-02-06 5:07 GMT+01:00 William Good <app...@li...>: > The table needs to be thread safe because different threads will be using > it at run time. I cannot use a pthread_mutex in my tool, correct? How can > I make a lock for the table? > Hi Bill, Valgrind runs properly multi-threaded applications, but effectively only uses one vCPU at a time to run them. In other words, Valgrind does not use multiple CPUs when running a multi-threaded application. So far no Valgrind analysis tool (except 'none') is designed such that it is multi-thread safe. They all leverage the fact there is always single thread running. See Philippe's presentation about multi-thread Valgrind prototype from FOSDEM 2015: https://archive.fosdem.org/2015/schedule/event/valgrind_multi_prototype/ It goes to a great length in what and where is not multi-thread safe and how come Valgrind is able to run multi-thread applications properly. An ideal situation would be if Valgrind core provides efficient synchronization mechanisms which all analysis tools can consume. Maybe Philippe could comment if there is anything usable from his prototype. I. |
|
From: William G. <app...@li...> - 2016-02-06 04:19:40
|
Hi all, I am writing a tool for multi-threaded debugging. I have inserted a helper with instruemntation (addStmtToIRSB( sbOut, IRStmt_Dirty(di) );). The helper stores data in a table. The table needs to be thread safe because different threads will be using it at run time. I cannot use a pthread_mutex in my tool, correct? How can I make a lock for the table? Thanks guys! |
|
From: <sv...@va...> - 2016-02-05 22:57:50
|
Author: iraisr
Date: Fri Feb 5 22:57:42 2016
New Revision: 15782
Log:
Solaris syscall: Add support for getrandom(143).
n-i-bz
Added:
trunk/memcheck/tests/solaris/scalar_getrandom.c
trunk/memcheck/tests/solaris/scalar_getrandom.stderr.exp
trunk/memcheck/tests/solaris/scalar_getrandom.stdout.exp
trunk/memcheck/tests/solaris/scalar_getrandom.vgtest
Modified:
trunk/configure.ac
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/include/vki/vki-scnums-solaris.h
trunk/memcheck/tests/solaris/ (props changed)
trunk/memcheck/tests/solaris/Makefile.am
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Fri Feb 5 22:57:42 2016
@@ -2969,6 +2969,32 @@
AM_CONDITIONAL(SOLARIS_LWP_NAME_SYSCALL, test x$solaris_lwp_name_syscall = xyes)
+# Solaris-specific check determining if the new getrandom() syscall is
+# available.
+#
+# New syscall (available on Solaris 11):
+# int getrandom(void *buf, size_t buflen, uint_t flags);
+#
+# C-level symbol: SOLARIS_GETRANDOM_SYSCALL
+# Automake-level symbol: SOLARIS_GETRANDOM_SYSCALL
+#
+AC_MSG_CHECKING([for the new `getrandom' syscall (Solaris-specific)])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/syscall.h>
+]], [[
+ return !SYS_getrandom;
+]])], [
+solaris_getrandom_syscall=yes
+AC_MSG_RESULT([yes])
+AC_DEFINE([SOLARIS_GETRANDOM_SYSCALL], 1,
+ [Define to 1 if you have the new `getrandom' syscall.])
+], [
+solaris_getrandom_syscall=no
+AC_MSG_RESULT([no])
+])
+AM_CONDITIONAL(SOLARIS_GETRANDOM_SYSCALL, test x$solaris_getrandom_syscall = xyes)
+
+
# Solaris-specific check determining if the new zone() syscall subcodes
# ZONE_LIST_DEFUNCT and ZONE_GETATTR_DEFUNCT are available. These subcodes
# were added in Solaris 11 but are missing on illumos.
@@ -3467,6 +3493,7 @@
AM_CONDITIONAL(SOLARIS_LWP_SIGQUEUE_SYSCALL, false)
AM_CONDITIONAL(SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID, false)
AM_CONDITIONAL(SOLARIS_LWP_NAME_SYSCALL, false)
+AM_CONDITIONAL(SOLARIS_GETRANDOM_SYSCALL, false)
AM_CONDITIONAL(SOLARIS_ZONE_DEFUNCT, false)
AM_CONDITIONAL(SOLARIS_SHM_NEW, false)
AM_CONDITIONAL(SOLARIS_PRXREGSET_T, false)
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Fri Feb 5 22:57:42 2016
@@ -28,7 +28,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-/* Copyright 2013-2015, Ivo Raisr <iv...@iv...>. */
+/* Copyright 2013-2016, Ivo Raisr <iv...@iv...>. */
/* Copyright 2015-2015, Tomas Jedlicka <jed...@gm...>. */
@@ -989,6 +989,9 @@
DECL_TEMPLATE(solaris, sys_systeminfo);
DECL_TEMPLATE(solaris, sys_seteuid);
DECL_TEMPLATE(solaris, sys_forksys);
+#if defined(SOLARIS_GETRANDOM_SYSCALL)
+DECL_TEMPLATE(solaris, sys_getrandom);
+#endif /* SOLARIS_GETRANDOM_SYSCALL */
DECL_TEMPLATE(solaris, sys_sigtimedwait);
DECL_TEMPLATE(solaris, sys_yield);
DECL_TEMPLATE(solaris, sys_lwp_sema_post);
@@ -6461,6 +6464,22 @@
}
}
+#if defined(SOLARIS_GETRANDOM_SYSCALL)
+PRE(sys_getrandom)
+{
+ /* int getrandom(void *buf, size_t buflen, uint_t flags); */
+ PRINT("sys_getrandom ( %#lx, %lu, %lu )", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(long, "getrandom", void *, buf, vki_size_t, buflen,
+ vki_uint_t, flags);
+ PRE_MEM_WRITE("getrandom(buf)", ARG1, ARG2);
+}
+
+POST(sys_getrandom)
+{
+ POST_MEM_WRITE(ARG1, RES);
+}
+#endif /* SOLARIS_GETRANDOM_SYSCALL */
+
PRE(sys_sigtimedwait)
{
/* int sigtimedwait(const sigset_t *set, siginfo_t *info,
@@ -10388,6 +10407,9 @@
SOLXY(__NR_systeminfo, sys_systeminfo), /* 139 */
SOLX_(__NR_seteuid, sys_seteuid), /* 141 */
SOLX_(__NR_forksys, sys_forksys), /* 142 */
+#if defined(SOLARIS_GETRANDOM_SYSCALL)
+ SOLXY(__NR_getrandom, sys_getrandom), /* 143 */
+#endif /* SOLARIS_GETRANDOM_SYSCALL */
SOLXY(__NR_sigtimedwait, sys_sigtimedwait), /* 144 */
SOLX_(__NR_yield, sys_yield), /* 146 */
SOLXY(__NR_lwp_sema_post, sys_lwp_sema_post), /* 148 */
Modified: trunk/include/vki/vki-scnums-solaris.h
==============================================================================
--- trunk/include/vki/vki-scnums-solaris.h (original)
+++ trunk/include/vki/vki-scnums-solaris.h Fri Feb 5 22:57:42 2016
@@ -28,7 +28,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-/* Copyright 2013-2015, Ivo Raisr <iv...@iv...>. */
+/* Copyright 2013-2016, Ivo Raisr <iv...@iv...>. */
/* Copyright 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
@@ -194,6 +194,9 @@
//#define __NR_sharefs SYS_sharefs
#define __NR_seteuid SYS_seteuid
#define __NR_forksys SYS_forksys
+#if defined(SOLARIS_GETRANDOM_SYSCALL)
+#define __NR_getrandom SYS_getrandom
+#endif /* SOLARIS_GETRANDOM_SYSCALL */
#define __NR_sigtimedwait SYS_sigtimedwait
//#define __NR_lwp_info SYS_lwp_info
#define __NR_yield SYS_yield
Modified: trunk/memcheck/tests/solaris/Makefile.am
==============================================================================
--- trunk/memcheck/tests/solaris/Makefile.am (original)
+++ trunk/memcheck/tests/solaris/Makefile.am Fri Feb 5 22:57:42 2016
@@ -30,6 +30,7 @@
pkcs11.stderr.exp-illumos pkcs11.stderr.exp-solaris pkcs11.stdout.exp pkcs11.vgtest \
scalar.stderr.exp scalar.stdout.exp scalar.vgtest \
scalar_frealpathat.stderr.exp scalar_frealpathat.stdout.exp scalar_frealpathat.vgtest \
+ scalar_getrandom.stderr.exp scalar_getrandom.stdout.exp scalar_getrandom.vgtest \
scalar_ioctl.stderr.exp scalar_ioctl.stdout.exp scalar_ioctl.vgtest \
scalar_lwp_kill.stderr.exp scalar_lwp_kill.stdout.exp scalar_lwp_kill.vgtest \
scalar_lwp_name.stderr.exp scalar_lwp_name.stdout.exp scalar_lwp_name.vgtest \
@@ -98,6 +99,10 @@
check_PROGRAMS += scalar_frealpathat
endif
+if SOLARIS_GETRANDOM_SYSCALL
+check_PROGRAMS += scalar_getrandom
+endif
+
if SOLARIS_LWP_NAME_SYSCALL
check_PROGRAMS += scalar_lwp_name
endif
Added: trunk/memcheck/tests/solaris/scalar_getrandom.c
==============================================================================
--- trunk/memcheck/tests/solaris/scalar_getrandom.c (added)
+++ trunk/memcheck/tests/solaris/scalar_getrandom.c Fri Feb 5 22:57:42 2016
@@ -0,0 +1,17 @@
+/* Test for getrandom syscall which is available on Solaris 11. */
+
+#include "scalar.h"
+
+int main(void)
+{
+ /* Uninitialised, but we know px[0] is 0x0. */
+ long *px = malloc(sizeof(long));
+ x0 = px[0];
+
+ /* SYS_getrandom 143 */
+ GO(SYS_getrandom, "(getrandom) 3s 1m");
+ SY(SYS_getrandom, x0 + 1, x0 + 1, x0); FAIL;
+
+ return 0;
+}
+
Added: trunk/memcheck/tests/solaris/scalar_getrandom.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/scalar_getrandom.stderr.exp (added)
+++ trunk/memcheck/tests/solaris/scalar_getrandom.stderr.exp Fri Feb 5 22:57:42 2016
@@ -0,0 +1,16 @@
+---------------------------------------------------------
+143: SYS_getrandom (getrandom) 3s 1m
+---------------------------------------------------------
+Syscall param getrandom(buf) contains uninitialised byte(s)
+ ...
+
+Syscall param getrandom(buflen) contains uninitialised byte(s)
+ ...
+
+Syscall param getrandom(flags) contains uninitialised byte(s)
+ ...
+
+Syscall param getrandom(buf) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
Added: trunk/memcheck/tests/solaris/scalar_getrandom.stdout.exp
==============================================================================
(empty)
Added: trunk/memcheck/tests/solaris/scalar_getrandom.vgtest
==============================================================================
--- trunk/memcheck/tests/solaris/scalar_getrandom.vgtest (added)
+++ trunk/memcheck/tests/solaris/scalar_getrandom.vgtest Fri Feb 5 22:57:42 2016
@@ -0,0 +1,4 @@
+prereq: test -e scalar_getrandom
+prog: scalar_getrandom
+vgopts: -q
+stderr_filter_args:
|
|
From: <sv...@va...> - 2016-02-04 22:38:14
|
Author: mjw
Date: Thu Feb 4 22:38:06 2016
New Revision: 15781
Log:
Explicitly test command -v host output before trying host command.
We have to explicitly test command -v host worked otherwise on systems
that do not have 'host' installed will return error code 127 and stop
testing. This is because vg_regtest uses '/bin/sh -c' to execute the
prereq command. Found by Petar Jovanovic.
Modified:
trunk/none/tests/res_search.vgtest
Modified: trunk/none/tests/res_search.vgtest
==============================================================================
--- trunk/none/tests/res_search.vgtest (original)
+++ trunk/none/tests/res_search.vgtest Thu Feb 4 22:38:06 2016
@@ -1,4 +1,4 @@
-prereq: command -v host >/dev/null 2>/dev/null && host www.yahoo.com > /dev/null && ! ../../tests/os_test darwin
+prereq: test $(command -v host) && host www.yahoo.com > /dev/null && ! ../../tests/os_test darwin
prog: res_search
args: www.yahoo.com
vgopts: -q
|
|
From: Petar J. <mip...@gm...> - 2016-02-03 22:32:15
|
On Wed, Feb 3, 2016 at 9:49 PM, Mark Wielaard <mj...@re...> wrote: > On Wed, 2016-02-03 at 20:52 +0100, Petar Jovanovic wrote: > > On Thu, Jan 21, 2016 at 12:15 AM, <sv...@va...> wrote: > > > "command -v" is a (POSIX) shell builtin that should work everywhere. > > > "which" might be an external command that might not be installed in > > > which case the shell might just error out. > > > > > This will not work on systems that do not have 'host' installed, as > > vg_regtest script uses '/bin/sh -c' to execute the command, so it will > > return error code 127 and stop the testing. E.g. if I rename "host" to > > "host123" and try it out: > > > > $ /bin/sh -c which host123 && host123 > > $ echo $? > > 1 > > $ /bin/sh -c command -v host123 && host123 > > host123: command not found > > $ echo $? > > 127 > > O, that is annoying. Sorry about that. > So we don't want to use which because that is an external command that > might not be installed (which is how I found out) and we also want to > explicitly test that the host command actually is installed and that it > can resolve the given hostname (in case the build is running on a > networkless host). > > Would the following work? > > prereq: test $(command -v host) && host www.yahoo.com > /dev/null > > It assumes test is always available, but I hope it is. > Yes, I believe that will work. Regards, Petar |
|
From: <sv...@va...> - 2016-02-03 22:13:05
|
Author: philippe
Date: Wed Feb 3 22:12:56 2016
New Revision: 15780
Log:
Some more fixes for Bug 348345 - Assertion fails for negative lineno
* Complain instead of asserting when negative line nr in inline info
* use a macro to factorise the complain once logic about lineno limits
Modified:
trunk/NEWS
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed Feb 3 22:12:56 2016
@@ -48,6 +48,7 @@
191069 Exiting due to signal not reported in XML output
212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
278744 cvtps2pd with redundant RexW
+348345 Assertion fails for negative lineno
353083 arm64 doesn't implement various xattr system calls
353084 arm64 doesn't support sigpending system call
353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
Modified: trunk/coregrind/m_debuginfo/storage.c
==============================================================================
--- trunk/coregrind/m_debuginfo/storage.c (original)
+++ trunk/coregrind/m_debuginfo/storage.c Wed Feb 3 22:12:56 2016
@@ -233,14 +233,9 @@
/*--- Adding stuff ---*/
/*------------------------------------------------------------*/
-/* Add a str to the string table, including terminating zero, and
- return pointer to the string in vg_strtab. Unless it's been seen
- recently, in which case we find the old pointer and return that.
- This avoids the most egregious duplications.
-
- JSGF: changed from returning an index to a pointer, and changed to
- a chunking memory allocator rather than reallocating, so the
- pointers are stable.
+/* If not yet in strpool, add a str to the string pool including terminating
+ zero.
+ Return the pointer to the string in strpool.
*/
const HChar* ML_(addStr) ( DebugInfo* di, const HChar* str, Int len )
{
@@ -493,6 +488,20 @@
di->loctab_size = new_sz;
}
+#define COMPLAIN_ONCE(what, limit, limit_op) \
+ { \
+ static Bool complained = False; \
+ if (!complained) { \
+ complained = True; \
+ VG_(message)(Vg_UserMsg, \
+ "warning: Can't handle " what " with " \
+ "line number %d " limit_op " than %d\n", \
+ lineno, limit); \
+ VG_(message)(Vg_UserMsg, \
+ "(Nb: this message is only shown once)\n"); \
+ } \
+}
+
/* Top-level place to call to add a source-location mapping entry.
*/
@@ -567,30 +576,11 @@
}
if (lineno < 0) {
- static Bool complained = False;
- if (!complained) {
- complained = True;
- VG_(message)(Vg_UserMsg,
- "warning: ignoring line info entry with "
- "negative line number (%d)\n", lineno);
- VG_(message)(Vg_UserMsg,
- "(Nb: this message is only shown once)\n");
- }
+ COMPLAIN_ONCE("line info entry", 0, "smaller");
return;
}
if (lineno > MAX_LINENO) {
- static Bool complained = False;
- if (!complained) {
- complained = True;
- VG_(message)(Vg_UserMsg,
- "warning: ignoring line info entry with "
- "huge line number (%d)\n", lineno);
- VG_(message)(Vg_UserMsg,
- " Can't handle line numbers "
- "greater than %d, sorry\n", MAX_LINENO);
- VG_(message)(Vg_UserMsg,
- "(Nb: this message is only shown once)\n");
- }
+ COMPLAIN_ONCE("line info entry", MAX_LINENO, "greater");
return;
}
@@ -668,20 +658,12 @@
addr_hi = addr_lo + 1;
}
- vg_assert(lineno >= 0);
+ if (lineno < 0) {
+ COMPLAIN_ONCE ("inlined call info entry", 0, "smaller");
+ return;
+ }
if (lineno > MAX_LINENO) {
- static Bool complained = False;
- if (!complained) {
- complained = True;
- VG_(message)(Vg_UserMsg,
- "warning: ignoring inlined call info entry with "
- "huge line number (%d)\n", lineno);
- VG_(message)(Vg_UserMsg,
- " Can't handle line numbers "
- "greater than %d, sorry\n", MAX_LINENO);
- VG_(message)(Vg_UserMsg,
- "(Nb: this message is only shown once)\n");
- }
+ COMPLAIN_ONCE ("inlined call info entry", MAX_LINENO, "greater");
return;
}
|
|
From: Mark W. <mj...@re...> - 2016-02-03 20:49:18
|
On Wed, 2016-02-03 at 20:52 +0100, Petar Jovanovic wrote: > On Thu, Jan 21, 2016 at 12:15 AM, <sv...@va...> wrote: > > "command -v" is a (POSIX) shell builtin that should work everywhere. > > "which" might be an external command that might not be installed in > > which case the shell might just error out. > > > This will not work on systems that do not have 'host' installed, as > vg_regtest script uses '/bin/sh -c' to execute the command, so it will > return error code 127 and stop the testing. E.g. if I rename "host" to > "host123" and try it out: > > $ /bin/sh -c which host123 && host123 > $ echo $? > 1 > $ /bin/sh -c command -v host123 && host123 > host123: command not found > $ echo $? > 127 O, that is annoying. Sorry about that. So we don't want to use which because that is an external command that might not be installed (which is how I found out) and we also want to explicitly test that the host command actually is installed and that it can resolve the given hostname (in case the build is running on a networkless host). Would the following work? prereq: test $(command -v host) && host www.yahoo.com > /dev/null It assumes test is always available, but I hope it is. |
|
From: Petar J. <mip...@gm...> - 2016-02-03 19:52:12
|
Hi Mark, On Thu, Jan 21, 2016 at 12:15 AM, <sv...@va...> wrote: > Author: mjw > Date: Wed Jan 20 23:15:04 2016 > New Revision: 15765 > > Log: > Use command -v instead of which in res_search.vgtest prereq. > > "command -v" is a (POSIX) shell builtin that should work everywhere. > "which" might be an external command that might not be installed in > which case the shell might just error out. > This will not work on systems that do not have 'host' installed, as vg_regtest script uses '/bin/sh -c' to execute the command, so it will return error code 127 and stop the testing. E.g. if I rename "host" to "host123" and try it out: $ /bin/sh -c which host123 && host123 $ echo $? 1 $ /bin/sh -c command -v host123 && host123 host123: command not found $ echo $? 127 Regards, Petar > Modified: > trunk/none/tests/res_search.vgtest > > Modified: trunk/none/tests/res_search.vgtest > > ============================================================================== > --- trunk/none/tests/res_search.vgtest (original) > +++ trunk/none/tests/res_search.vgtest Wed Jan 20 23:15:04 2016 > @@ -1,4 +1,4 @@ > -prereq: which host >/dev/null 2>/dev/null && host www.yahoo.com > > /dev/null && ! ../../tests/os_test darwin > +prereq: command -v host >/dev/null 2>/dev/null && host www.yahoo.com > > /dev/null && ! ../../tests/os_test darwin > prog: res_search > args: www.yahoo.com > vgopts: -q > > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
Author: tom
Date: Wed Feb 3 10:15:56 2016
New Revision: 15779
Log:
Add tests for FCOM/FCOMP instructions. BZ#212352.
Modified:
trunk/NEWS
trunk/none/tests/amd64/insn_fpu.def
trunk/none/tests/amd64/insn_fpu.stdout.exp
trunk/none/tests/x86/insn_fpu.def
trunk/none/tests/x86/insn_fpu.stdout.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed Feb 3 10:15:56 2016
@@ -46,6 +46,7 @@
where XXXXXX is the bug number as listed below.
191069 Exiting due to signal not reported in XML output
+212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
278744 cvtps2pd with redundant RexW
353083 arm64 doesn't implement various xattr system calls
353084 arm64 doesn't support sigpending system call
Modified: trunk/none/tests/amd64/insn_fpu.def
==============================================================================
--- trunk/none/tests/amd64/insn_fpu.def (original)
+++ trunk/none/tests/amd64/insn_fpu.def Wed Feb 3 10:15:56 2016
@@ -58,6 +58,18 @@
fiaddl st0.pd[-1234567.7654321] : m32.sd[87654321] => st0.pd[86419753.2345679]
fiaddl st0.pd[1234567.7654321] : m32.sd[-87654321] => st0.pd[-86419753.2345679]
fiaddl st0.pd[-1234567.7654321] : m32.sd[-87654321] => st0.pd[-88888888.7654321]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5676] => st0.ps[1234.5678] fpusw[0x4700,0x0000]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5679] => st0.ps[1234.5678] fpusw[0x4700,0x0100]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5678] => st0.ps[1234.5678] fpusw[0x4700,0x4000]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654320] => st0.pd[1234567.7654321] fpusw[0x4700,0x0000]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654322] => st0.pd[1234567.7654321] fpusw[0x4700,0x0100]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654321] => st0.pd[1234567.7654321] fpusw[0x4700,0x4000]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5676] => st0.ps[8765.4321] fpusw[0x4700,0x0000]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5679] => st0.ps[8765.4321] fpusw[0x4700,0x0100]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5678] => st0.ps[8765.4321] fpusw[0x4700,0x4000]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654320] => st0.pd[7654321.1234567] fpusw[0x4700,0x0000]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654322] => st0.pd[7654321.1234567] fpusw[0x4700,0x0100]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654321] => st0.pd[7654321.1234567] fpusw[0x4700,0x4000]
fcomi st2.ps[1234.5678] st0.ps[1234.5679] => st0.ps[1234.5678] st2.ps[1234.5679] eflags[0x45,0x00]
fcomi st2.ps[1234.5678] st0.ps[1234.5676] => st0.ps[1234.5678] st2.ps[1234.5676] eflags[0x45,0x01]
fcomi st2.ps[1234.5678] st0.ps[1234.5678] => st0.ps[1234.5678] st2.ps[1234.5678] eflags[0x45,0x40]
Modified: trunk/none/tests/amd64/insn_fpu.stdout.exp
==============================================================================
--- trunk/none/tests/amd64/insn_fpu.stdout.exp (original)
+++ trunk/none/tests/amd64/insn_fpu.stdout.exp Wed Feb 3 10:15:56 2016
@@ -58,6 +58,18 @@
fiaddl_6 ... ok
fiaddl_7 ... ok
fiaddl_8 ... ok
+fcoms_1 ... ok
+fcoms_2 ... ok
+fcoms_3 ... ok
+fcoml_1 ... ok
+fcoml_2 ... ok
+fcoml_3 ... ok
+fcomps_1 ... ok
+fcomps_2 ... ok
+fcomps_3 ... ok
+fcompl_1 ... ok
+fcompl_2 ... ok
+fcompl_3 ... ok
fcomi_1 ... ok
fcomi_2 ... ok
fcomi_3 ... ok
Modified: trunk/none/tests/x86/insn_fpu.def
==============================================================================
--- trunk/none/tests/x86/insn_fpu.def (original)
+++ trunk/none/tests/x86/insn_fpu.def Wed Feb 3 10:15:56 2016
@@ -58,6 +58,18 @@
fiaddl st0.pd[-1234567.7654321] : m32.sd[87654321] => st0.pd[86419753.2345679]
fiaddl st0.pd[1234567.7654321] : m32.sd[-87654321] => st0.pd[-86419753.2345679]
fiaddl st0.pd[-1234567.7654321] : m32.sd[-87654321] => st0.pd[-88888888.7654321]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5676] => st0.ps[1234.5678] fpusw[0x4700,0x0000]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5679] => st0.ps[1234.5678] fpusw[0x4700,0x0100]
+fcoms st0.ps[1234.5678] : m32.ps[1234.5678] => st0.ps[1234.5678] fpusw[0x4700,0x4000]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654320] => st0.pd[1234567.7654321] fpusw[0x4700,0x0000]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654322] => st0.pd[1234567.7654321] fpusw[0x4700,0x0100]
+fcoml st0.pd[1234567.7654321] : m64.pd[1234567.7654321] => st0.pd[1234567.7654321] fpusw[0x4700,0x4000]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5676] => st0.ps[8765.4321] fpusw[0x4700,0x0000]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5679] => st0.ps[8765.4321] fpusw[0x4700,0x0100]
+fcomps st1.ps[8765.4321] st0.ps[1234.5678] : m32.ps[1234.5678] => st0.ps[8765.4321] fpusw[0x4700,0x4000]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654320] => st0.pd[7654321.1234567] fpusw[0x4700,0x0000]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654322] => st0.pd[7654321.1234567] fpusw[0x4700,0x0100]
+fcompl st1.pd[7654321.1234567] st0.pd[1234567.7654321] : m64.pd[1234567.7654321] => st0.pd[7654321.1234567] fpusw[0x4700,0x4000]
fcomi st2.ps[1234.5678] st0.ps[1234.5679] => st0.ps[1234.5678] st2.ps[1234.5679] eflags[0x45,0x00]
fcomi st2.ps[1234.5678] st0.ps[1234.5676] => st0.ps[1234.5678] st2.ps[1234.5676] eflags[0x45,0x01]
fcomi st2.ps[1234.5678] st0.ps[1234.5678] => st0.ps[1234.5678] st2.ps[1234.5678] eflags[0x45,0x40]
Modified: trunk/none/tests/x86/insn_fpu.stdout.exp
==============================================================================
--- trunk/none/tests/x86/insn_fpu.stdout.exp (original)
+++ trunk/none/tests/x86/insn_fpu.stdout.exp Wed Feb 3 10:15:56 2016
@@ -58,6 +58,18 @@
fiaddl_6 ... ok
fiaddl_7 ... ok
fiaddl_8 ... ok
+fcoms_1 ... ok
+fcoms_2 ... ok
+fcoms_3 ... ok
+fcoml_1 ... ok
+fcoml_2 ... ok
+fcoml_3 ... ok
+fcomps_1 ... ok
+fcomps_2 ... ok
+fcomps_3 ... ok
+fcompl_1 ... ok
+fcompl_2 ... ok
+fcompl_3 ... ok
fcomi_1 ... ok
fcomi_2 ... ok
fcomi_3 ... ok
|
|
From: <sv...@va...> - 2016-02-03 10:14:28
|
Author: tom
Date: Wed Feb 3 10:14:18 2016
New Revision: 3207
Log:
Handle missing FCOM case on amd64.
Patch from Mark Harris on BZ#212352.
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed Feb 3 10:14:18 2016
@@ -6401,19 +6401,20 @@
fp_do_op_mem_ST_0 ( addr, "mul", dis_buf, Iop_MulF64, True );
break;
-//.. case 2: /* FCOM double-real */
-//.. DIP("fcoml %s\n", dis_buf);
-//.. /* This forces C1 to zero, which isn't right. */
-//.. put_C3210(
-//.. binop( Iop_And32,
-//.. binop(Iop_Shl32,
-//.. binop(Iop_CmpF64,
-//.. get_ST(0),
-//.. loadLE(Ity_F64,mkexpr(addr))),
-//.. mkU8(8)),
-//.. mkU32(0x4500)
-//.. ));
-//.. break;
+ case 2: /* FCOM double-real */
+ DIP("fcoml %s\n", dis_buf);
+ /* This forces C1 to zero, which isn't right. */
+ put_C3210(
+ unop(Iop_32Uto64,
+ binop( Iop_And32,
+ binop(Iop_Shl32,
+ binop(Iop_CmpF64,
+ get_ST(0),
+ loadLE(Ity_F64,mkexpr(addr))),
+ mkU8(8)),
+ mkU32(0x4500)
+ )));
+ break;
case 3: /* FCOMP double-real */
DIP("fcompl %s\n", dis_buf);
|