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
(1) |
3
(1) |
4
(5) |
5
|
6
(1) |
7
|
|
8
(10) |
9
(7) |
10
(2) |
11
(10) |
12
(1) |
13
|
14
(1) |
|
15
(3) |
16
|
17
|
18
|
19
|
20
|
21
(5) |
|
22
(2) |
23
(2) |
24
(4) |
25
(2) |
26
|
27
(7) |
28
(4) |
|
29
(5) |
30
(5) |
31
(1) |
|
|
|
|
|
From: Mark W. <ma...@so...> - 2023-01-15 13:30:12
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=fdda0bece6dd57aafd7cc527e86431794430dc4a commit fdda0bece6dd57aafd7cc527e86431794430dc4a Author: Mark Wielaard <ma...@kl...> Date: Sun Jan 15 14:24:19 2023 +0100 m_debuginfo: Suppress warning about not handling entry_value ops The warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf3 isn't very helpful. This means we didn't handle DW_OP_GNU_entry_value. DW_OP_GNU_entry_value (or DWARF5 DW_OP_entry_value) means interpreting the given DWARF expression using register values as they were upon entering the function. Which is non-trivial to implement. We can fail the evaluation of the DWARF expression without warning about it by default, since it isn't really needed for any current valgrind functionality (and it is only done with --read-var-info=yes. Diff: --- coregrind/m_debuginfo/d3basics.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/coregrind/m_debuginfo/d3basics.c b/coregrind/m_debuginfo/d3basics.c index d48589a30c..e9e8944af8 100644 --- a/coregrind/m_debuginfo/d3basics.c +++ b/coregrind/m_debuginfo/d3basics.c @@ -1048,6 +1048,14 @@ GXResult ML_(evaluate_Dwarf3_Expr) ( const UChar* expr, UWord exprszB, FAIL("evaluate_Dwarf3_Expr: DW_OP_stack_value " "does not terminate expression"); break; + case DW_OP_entry_value: + case DW_OP_GNU_entry_value: + /* This provides a DWARF expression where any register op + needs tobe evaluated as if the value that register had + upon entering the function. Which is non-trivial to + implement. */ + FAIL("evaluate_Dwarf3_Expr: Unhandled DW_OP entry_value"); + return res; default: if (!VG_(clo_xml)) VG_(message)(Vg_DebugMsg, |
|
From: Paul F. <pa...@so...> - 2023-01-15 08:07:25
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=cae2118d959832196d5ba54b5290db0bc2060146 commit cae2118d959832196d5ba54b5290db0bc2060146 Author: Paul Floyd <pj...@wa...> Date: Sun Jan 15 09:05:55 2023 +0100 FreeBSD: some _umtx_op corrections mutex trylock doesn't user timer arguments plain mutex lock doesn't need restart still not sure about mutex trylock Diff: --- coregrind/m_syswrap/syswrap-freebsd.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/coregrind/m_syswrap/syswrap-freebsd.c b/coregrind/m_syswrap/syswrap-freebsd.c index 8bf4fcddee..1df874e735 100644 --- a/coregrind/m_syswrap/syswrap-freebsd.c +++ b/coregrind/m_syswrap/syswrap-freebsd.c @@ -4263,6 +4263,7 @@ PRE(sys__umtx_op) they're always pointers. They may not be used though. */ switch(ARG2) { case VKI_UMTX_OP_LOCK: + // marked as COMPAT10 PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, LOCK, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ5(long, "_umtx_op_lock", struct umtx *, obj, int, op, unsigned long, id, @@ -4275,6 +4276,7 @@ PRE(sys__umtx_op) *flags |= SfMayBlock; break; case VKI_UMTX_OP_UNLOCK: + // marked as COMPAT10 PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, UNLOCK, %" FMT_REGWORD "u)", ARG1, ARG3); PRE_REG_READ3(long, "_umtx_op_unlock", struct umtx *, obj, int, op, unsigned long, id); @@ -4295,8 +4297,6 @@ PRE(sys__umtx_op) if (ARG5) { PRE_MEM_READ( "_umtx_op_wait(timeout)", ARG5, ARG4 ); - } else { - *flags |= SfKernelRestart; } break; @@ -4308,17 +4308,17 @@ PRE(sys__umtx_op) break; case VKI_UMTX_OP_MUTEX_TRYLOCK: PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, MUTEX_TRYLOCK, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); - PRE_REG_READ5(long, "_umtx_op_mutex_trylock", - struct umutex *, obj, int, op, unsigned long, noid, - size_t, timeout_size, struct vki_timespec *, timeout); + PRE_REG_READ2(long, "_umtx_op_mutex_trylock", struct umutex *, obj, int, op); PRE_MEM_READ( "_umtx_op_mutex_trylock(mutex)", ARG1, sizeof(struct vki_umutex) ); - if (ARG5) { - PRE_MEM_READ( "_umtx_op_mutex_trylock(timespec)", ARG5, ARG4 ); - } PRE_MEM_WRITE( "_umtx_op_mutex_trylock(mutex)", ARG1, sizeof(struct vki_umutex) ); + /* not too sure about the restart here + * it's hard to test as if the mutex is locked this returns EBUSY + * so there is only a small window where the syscall could be interrupted */ *flags |= SfMayBlock | SfKernelRestart; break; case VKI_UMTX_OP_MUTEX_LOCK: + // called by pthread_mutex_lock + // when the atribute UMUTEX_PRIO_PROTECT or UMUTEX_PRIO_INHERIT is set PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, MUTEX_LOCK, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ5(long, "_umtx_op_mutex_lock", struct umutex *, obj, int, op, unsigned long, noid, @@ -4326,9 +4326,11 @@ PRE(sys__umtx_op) PRE_MEM_READ( "_umtx_op_mutex_lock(mutex)", ARG1, sizeof(struct vki_umutex) ); if (ARG5) { PRE_MEM_READ( "_umtx_op_mutex_lock(timespec)", ARG5, ARG4 ); + } else { + *flags |= SfKernelRestart; } PRE_MEM_WRITE( "_umtx_op_mutex_lock(mutex)", ARG1, sizeof(struct vki_umutex) ); - *flags |= SfMayBlock | SfKernelRestart; + *flags |= SfMayBlock; break; case VKI_UMTX_OP_MUTEX_UNLOCK: PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, MUTEX_UNLOCK)", ARG1); @@ -4430,6 +4432,8 @@ PRE(sys__umtx_op) PRE_MEM_READ( "_umtx_op_wake_private(mtx)", ARG1, sizeof(struct vki_umtx) ); break; case VKI_UMTX_OP_MUTEX_WAIT: + // pthread_mutex_lock without prio flags + // does not need to be restarted PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, MUTEX_WAIT, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ2(long, "_umtx_op_mutex_wait", struct umutex *, obj, int, op); @@ -4438,6 +4442,7 @@ PRE(sys__umtx_op) *flags |= SfMayBlock; break; case VKI_UMTX_OP_MUTEX_WAKE: + // marked as deprecated PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, MUTEX_WAKE, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ2(long, "_umtx_op_mutex_wake", struct umutex *, obj, int, op); @@ -4445,6 +4450,7 @@ PRE(sys__umtx_op) PRE_MEM_WRITE( "_umtx_op_mutex_wake(mutex)", ARG1, sizeof(struct vki_umutex) ); break; case VKI_UMTX_OP_SEM_WAIT: + // marked as deprecated PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, SEM_WAIT, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ5(long, "_umtx_op_sem_wait", struct usem *, obj, int, op, unsigned long, id, @@ -4457,6 +4463,7 @@ PRE(sys__umtx_op) *flags |= SfMayBlock; break; case VKI_UMTX_OP_SEM_WAKE: + // marked as deprecated PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, SEM_WAKE, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG3, ARG4, ARG5); PRE_REG_READ2(long, "_umtx_op_sem_wake", struct umutex *, obj, int, op); |
|
From: Paul F. <pa...@so...> - 2023-01-15 06:20:32
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=30cdbfbb2c6d1a4fca45f86deae1a74a507d733c commit 30cdbfbb2c6d1a4fca45f86deae1a74a507d733c Author: Paul Floyd <pj...@wa...> Date: Sun Jan 15 07:20:08 2023 +0100 FreeBSD: some more clangd refactoring Diff: --- coregrind/vgdb-invoker-freebsd.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/coregrind/vgdb-invoker-freebsd.c b/coregrind/vgdb-invoker-freebsd.c index 6de80c9071..4a8a97cb7c 100644 --- a/coregrind/vgdb-invoker-freebsd.c +++ b/coregrind/vgdb-invoker-freebsd.c @@ -157,8 +157,9 @@ char *status_image (int status) result[0] = 0; - if (WIFEXITED(status)) + if (WIFEXITED(status)) { APPEND ("WIFEXITED %d ", WEXITSTATUS(status)); + } if (WIFSIGNALED(status)) { APPEND ("WIFSIGNALED %d ", WTERMSIG(status)); @@ -258,10 +259,11 @@ Bool waitstopped (pid_t pid, int signal_expected, const char *msg) if (res != 0) { ERROR(errno, "PT_LWPINFO failed: signal lost !!!!\n"); signal_queue_sz--; - } else + } else { DEBUG(1, "waitstopped PTRACE_CONT, queuing signal %d" " si_signo %d si_pid %d\n", signal_received, newsiginfo->si_signo, newsiginfo->si_pid); + } res = ptrace (PT_CONTINUE, pid, (caddr_t)1, 0); } else { DEBUG(1, "waitstopped PT_CONTINUE with signal %d\n", signal_received); @@ -314,8 +316,9 @@ Bool attach (pid_t pid, const char *msg) if (res != 0) { if (output_error || debuglevel > 0) { ERROR(errno, "%s PT_ATTACH pid %d %ld\n", msg, pid, res); - if (initial_attach) + if (initial_attach) { output_error = False; + } } return False; } @@ -374,8 +377,9 @@ void restore_and_detach (pid_t pid) before resetting the registers. */ if (pid_of_save_regs_continued) { pid_of_save_regs_continued = False; - if (!stop(pid_of_save_regs, "sigstop before reset regs")) + if (!stop(pid_of_save_regs, "sigstop before reset regs")) { DEBUG(0, "Could not sigstop before reset"); + } } DEBUG(1, "setregs restore registers pid %d\n", pid_of_save_regs); @@ -392,11 +396,13 @@ void restore_and_detach (pid_t pid) signal_queue[i].si_signo); res = ptrace (PT_CONTINUE, pid_of_save_regs, (caddr_t)1, signal_queue[i].si_signo); - if (res != 0) + if (res != 0) { ERROR(errno, "PT_CONTINUE with signal %d\n", signal_queue[i].si_signo); - if (!stop(pid_of_save_regs, "sigstop after transmit sig")) + } + if (!stop(pid_of_save_regs, "sigstop after transmit sig")) { DEBUG(0, "Could not sigstop after transmit sig"); + } } free (signal_queue); signal_queue = NULL; @@ -406,9 +412,10 @@ void restore_and_detach (pid_t pid) } else { DEBUG(1, "PTRACE_SETREGS restore registers: no pid\n"); } - if (signal_queue) + if (signal_queue) { ERROR (0, "One or more signals queued were not delivered. " "First signal: %d\n", signal_queue[0].si_signo); + } detach_from_all_threads(pid); } @@ -600,18 +607,18 @@ Bool invoker_invoke_gdbserver (pid_t pid) pid_of_save_regs_continued = False; restore_and_detach(pid); return True; - } else { - /* Whatever kind of problem happened. We shutdown. */ - shutting_down = True; - return False; } + /* Whatever kind of problem happened. We shutdown. */ + shutting_down = True; + return False; } void invoker_cleanup_restore_and_detach(void *v_pid) { DEBUG(1, "invoker_cleanup_restore_and_detach dying: %d\n", dying); - if (!dying) + if (!dying) { restore_and_detach(*(int*)v_pid); + } } void invoker_restrictions_msg(void) |