1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>2. NEWS</title>
<link rel="stylesheet" type="text/css" href="vg_basic.css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Valgrind Documentation">
<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
<link rel="prev" href="dist.authors.html" title="1. AUTHORS">
<link rel="next" href="dist.news.old.html" title="3. OLDER NEWS">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.authors.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
<th align="center" valign="middle">Valgrind Distribution Documents</th>
<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.news.old.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
</tr></table></div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="dist.news"></a>2. NEWS</h1></div></div></div>
<div class="literallayout"><p><br>
Release 3.24.0 (31 Oct 2024)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD<br>
and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* Bad file descriptor usage now generates a real error with<br>
--track-fds=yes that is suppressible and shows up in the xml output<br>
with full execution backtrace. The warnings shown without using the<br>
option are deprecated and will be removed in a future valgrind<br>
version.<br>
<br>
* Ada name demangling is now supported in error messages.<br>
<br>
* ================== PLATFORM CHANGES =================<br>
<br>
* S390X added support for the DFLTCC instruction provided by the<br>
deflate-conversion facility (z15/arch13).<br>
<br>
* S390X added support for the instructions provided by the MSA facility<br>
and MSA extensions 1-9.<br>
<br>
* ==================== TOOL CHANGES ===================<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
202770 open fd at exit --log-socket=127.0.0.1:1500 with --track-fds=yes<br>
276780 An instruction in fftw (Fast Fourier Transform) is unhandled by<br>
valgrind: vex x86->IR: unhandled instruction bytes:<br>
0x66 0xF 0x3A 0x2<br>
311655 --log-file=FILE leads to apparent fd leak<br>
317127 Fedora18/x86_64 --sanity-level=3 : aspacem segment mismatch<br>
337388 fcntl works on Valgrind's own file descriptors<br>
377966 arm64 unhandled instruction dc zva392146 aarch64: unhandled<br>
instruction 0xD5380001 (MRS rT, midr_el1)<br>
391148 Unhandled AVX instruction vmovq %xmm9,%xmm1<br>
392146 aarch64: unhandled instruction 0xD5380001 (MRS rT, midr_el1)<br>
412377 SIGILL on cache flushes on arm64<br>
417572 vex amd64->IR: unhandled instruction bytes: 0xC5 0x79 0xD6 0xED 0xC5<br>
440180 s390x: Failed assertion in disassembler<br>
444781 MIPS: wrong syscall numbers used<br>
447989 Support Armv8.2 SHA-512 instructions<br>
445235 Java/Ada/D demangling is probably broken<br>
453044 gbserver_tests failures in aarch64<br>
479661 Valgrind leaks file descriptors<br>
486180 [Valgrind][MIPS] 'VexGuestArchState' has no member named<br>
'guest_IP_AT_SYSCALL'<br>
486293 memccpy false positives<br>
486569 linux inotify_init syscall wrapper missing POST entry in syscall_table<br>
487439 SIGILL in JDK11, JDK17<br>
487993 Alignment error when using Eigen with Valgrind and -m32<br>
488026 Use of `sizeof` instead of `strlen<br>
488379 --track-fds=yes errors that cannot be suppressed with --xml-file=<br>
488441 Add tests for --track-fds=yes --xml=yes and fd suppression tests<br>
489040 massif trace change to show the location increasing the stack<br>
489088 Valgrind throws unhandled instruction bytes: 0xC5 0x79 0xD6 0xE0 0xC5<br>
489338 arm64: Instruction fcvtas should round 322.5 to 323, but result is 322.<br>
489676 vgdb handle EINTR and EAGAIN more consistently<br>
490651 Stop using -flto-partition=one<br>
491394 (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map &&<br>
di->fsm.rw_map_count' failed<br>
492210 False positive on x86/amd64 with ZF taken directly from addition<br>
492214 statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11<br>
but not supported in valgrind<br>
492422 Please support DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD<br>
492663 Valgrind ignores debug info for some binaries<br>
493418 Add bad fd usage errors for --track-fds in ML_(fd_allowed)<br>
493454 Missing FUSE_COMPATIBLE_MAY_BLOCK markers<br>
493507 direct readlink syscall from PRE handler is incompatible with<br>
FUSE_COMPATIBLE_MAY_BLOCK<br>
493959 s390x: Fix regtest failure for none/tests/s390x/op00<br>
493970 s390x: Store/restore FPC upon helper call causes slowdown<br>
494252 s390x: incorrect disassembly for LOCHI and friends<br>
494960 Fixes and tweaks for gsl19test<br>
495278 PowerPC instruction dcbf should allow the L field values of 4, 6 on<br>
ISA 3.0 and earlier, just ignore the value<br>
495469 aligned_alloc and posix_memalign missing MALLOC_TRACE with returned<br>
pointer<br>
495470 s390x: 3.24.0.RC1 missing file and regtest failure<br>
n-i-bz Improve messages for sigaltstack errors, use specific<br>
stack_t member names<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
(3.24.0.RC1: 27 Oct 2024)<br>
<br>
<br>
Release 3.23.0 (26 Apr 2024)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD<br>
and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* --track-fds=yes will now also warn about double closing of file<br>
descriptors. Printing the context where the file descriptor was<br>
originally opened and where it was previously closed.<br>
<br>
* --track-fds=yes also produces "real" errors now which can be<br>
suppressed and work with --error-exitcode. When combined with<br>
--xml the xml-output now also includes FdBadClose and FdNotClosed<br>
error kinds (see docs/internals/xml-output-protocol5.txt).<br>
<br>
* The option --show-error-list=no|yes now accepts a new value all.<br>
This indicates to also print the suppressed errors.<br>
This is useful to analyse which errors are suppressed by which<br>
suppression entries.<br>
The valgrind monitor command 'v.info all_errors' similarly now<br>
accepts a new optional argument 'also_suppressed' to show<br>
all errors including the suppressed errors.<br>
<br>
* ================== PLATFORM CHANGES =================<br>
<br>
* Added ARM64 support for FreeBSD.<br>
<br>
* ARM64 now supports dotprod instructions (sdot/udot).<br>
<br>
* AMD64 better supports code build with -march=x86-64-v3.<br>
fused-multiple-add instructions (fma) are now emulated more<br>
accurately. And memcheck now handles __builtin_strcmp using 128/256<br>
bit vectors with sse4.1, avx/avx2.<br>
<br>
* S390X added support for NNPA (neural network processing assist)<br>
facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and<br>
NNPA (z16/arch14).<br>
<br>
* X86 recognizes new binutils-2.42 nop patterns.<br>
<br>
* ==================== TOOL CHANGES ===================<br>
<br>
* The none tool now also supports xml output.<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
<br>
283429 ARM leak checking needs CLEAR_CALLER_SAVED_REGS<br>
281059 Cannot connect to Oracle using valgrind<br>
328563 make track-fds support xml output<br>
362680 --error-exitcode not honored when file descriptor leaks are found<br>
369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target<br>
390269 unhandled amd64-darwin syscall: unix:464 (openat_nocancel)<br>
401284 False positive "Source and destination overlap in strncat"<br>
428364 Signals inside io_uring_enter not handled<br>
437790 valgrind reports "Conditional jump or move depends on uninitialised<br>
value" in memchr of macOS 10.12-10.15<br>
460616 disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)<br>
463458 memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3<br>
463463 none/tests/amd64/fma fails when executed on a x86-64-v3 system<br>
466762 Add redirs for C23 free_sized() and free_aligned_sized()<br>
466884 Missing writev uninit padding suppression for _XSend<br>
471036 disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6<br>
471222 support tracking of file descriptors being double closed<br>
474160 If errors-for-leak-kinds is specified, exit-on-first-error should only exit<br>
on one of the listed errors.<br>
475498 Add reallocarray wrapper<br>
476025 Vbit expected test results for Iop_CmpGT64Ux2 are wrong<br>
476320 Build failure with GCC<br>
476331 clean up generated/distributed filter scripts<br>
476535 Difference in allocation size for massif/tests/overloaded-new between<br>
clang++/libc++ and g++/libstdc++<br>
476548 valgrind 3.22.0 fails on assertion when loading debuginfo file<br>
produced by mold<br>
476708 valgrind-monitor.py regular expressions should use raw strings<br>
476780 Extend strlcat and strlcpy wrappers to GNU libc<br>
476787 Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is<br>
defined<br>
476887 WARNING: unhandled amd64-freebsd syscall: 578<br>
477198 Add fchmodat2 syscall on linux<br>
477628 Add mremap support for Solaris<br>
477630 Include ucontext.h rather than sys/ucontext.h in Solaris sources<br>
477719 vgdb incorrectly replies to qRcmd packet<br>
478211 Redundant code for vgdb.c and Valgrind core tools<br>
478624 Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns<br>
(unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26<br>
478837 valgrind fails to read debug info for rust binaries<br>
479041 Executables without RW sections do not trigger debuginfo reading<br>
480052 WARNING: unhandled amd64-freebsd syscall: 580<br>
480126 Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8<br>
480405 valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):<br>
Assertion '!sr_isError(sr)' failed."<br>
480488 Add support for FreeBSD 13.3<br>
480706 Unhandled syscall 325 (mlock2)<br>
481127 amd64: Implement VFMADD213 for Iop_MAddF32<br>
481131 [PATCH] x86 regtest: fix clobber lists in generated asm statements<br>
481676 Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang<br>
481874 Add arm64 support for FreeBSD<br>
483786 Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper<br>
484002 Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()<br>
484426 aarch64: 0.5 gets rounded to 0<br>
484480 False positives when using sem_trywait<br>
484935 [patch] Valgrind reports false "Conditional jump or move depends on<br>
uninitialised value" errors for aarch64 signal handlers<br>
485148 vfmadd213ss instruction is instrumented incorrectly (the remaining<br>
part of the register is cleared instead of kept unmodified)<br>
485487 glibc built with -march=x86-64-v3 does not work due to ld.so strcmp<br>
485778 Crash with --track-fds=all and --gen-suppressions=all<br>
n-i-bz Add redirect for memccpy<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
(3.23.0.RC1: 19 Apr 2024)<br>
(3.23.0.RC2: 24 Apr 2024)<br>
<br>
Release 3.22.0 (31 Oct 2023)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and<br>
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* A new configure option --with-gdbscripts-dir lets you install<br>
the gdb valgrind python monitor scripts in a specific location.<br>
For example a distro could use it to install the scripts in a<br>
safe load location --with-gdbscripts-dir=%{_datadir}/gdb/auto-load<br>
It is also possible to configure --without-gdb-scripts-dir so no<br>
.debug_gdb_scripts section is added to the vgpreload library and<br>
no valgrind-monitor python scripts are installed at all.<br>
<br>
* ================== PLATFORM CHANGES =================<br>
<br>
* Support has been added for FreeBSD 14 and FreeBSD 15.<br>
* Add support for the folllowing FreeBSD system calls:<br>
close_range, kqueuex, membarrier, timerfd_create,<br>
timerfd_settime and timerfd_gettime (all added in FreeBSD 15).<br>
<br>
* ==================== TOOL CHANGES ===================<br>
<br>
* Memcheck now tests and warns about the values used for<br>
alignment and size. These apply to various functions: memalign,<br>
posix_memalign and aligned_alloc in C and various overloads<br>
of operators new and delete in C++. The kinds of error that can<br>
be detected are<br>
- invalid alignment, for instance the alignment is usually required<br>
to be a power of 2<br>
- mismatched alignment between aligned allocation and aligned<br>
deallocation<br>
- mismatched size when sized delete is used<br>
- bad size for functions that have implementation defined behaviour<br>
when the requested size is zero<br>
<br>
* Cachegrind:<br>
- You can now profile part of a program's execution using the new<br>
`CACHEGRIND_START_INSTRUMENTATION` and `CACHEGRIND_STOP_INSTRUMENTATION`<br>
client requests, along with the new `--instr-at-start` option. The<br>
behaviour is the same as Callgrind's equivalent functionality.<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
390871 ELF debug info reader confused with multiple .rodata* sections<br>
417993 vbit-test fail on s390x with Iop_Add32: spurious dependency on uninit<br>
426751 Valgrind reports "still reachable" memory using musl<br>
(alpine running inside docker)<br>
432801 Valgrind 3.16.1 reports a jump based on uninitialized memory somehow<br>
related to clang and signals<br>
433857 Add validation to C++17 aligned new/delete alignment size<br>
433859 Add mismatched detection to C++ 17 aligned new/delete<br>
460192 Add epoll_pwait2<br>
461074 DWARF2 CFI reader: unhandled DW_OP_ 0x11 (consts) DW_OP_ 0x92 (bregx)<br>
465782 s390x: Valgrind doesn't compile with Clang on s390x<br>
466105 aligned_alloc problems, part 2<br>
467441 Add mismatched detection to C++ 14 sized delete<br>
469049 link failure on ppc64 (big endian) valgrind 3.20<br>
469146 massif --ignore-fn does not ignore inlined functions<br>
469768 Make it possible to install gdb scripts in a different location<br>
470121 Can't run callgrind_control with valgrind 3.21.0 because of perl errors<br>
470132 s390x: Assertion failure on VGM instruction<br>
470520 Multiple realloc zero errors crash in MC_(eq_Error)<br>
470713 Failure on the Yosys project: valgrind: m_libcfile.c:1802<br>
(Bool vgPlain_realpath(const HChar *, HChar *)):<br>
Assertion 'resolved' failed<br>
470830 Don't print actions vgdb me ... continue for vgdb --multi mode<br>
470978 s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"<br>
471311 gdb --multi mode stdout redirecting to stderr<br>
471807 Add support for lazy reading and downloading of DWARF debuginfo<br>
472219 Syscall param ppoll(ufds.events) points to uninitialised byte(s)<br>
472875 none/tests/s390x/dfp-1 failure <br>
472963 Broken regular expression in configure.ac<br>
473604 Fix bug472219.c compile failure with Clang 16<br>
473677 make check compile failure with Clang 16 based on GCC 13.x<br>
473745 must-be-redirected function - strlen<br>
473870 FreeBSD 14 applications fail early at startup<br>
473944 Handle mold linker split RW PT_LOAD segments correctly<br>
474332 aligned_alloc under Valgrind returns nullptr when alignment is not a multiple of sizeof(void *)<br>
475650 DRD does not work with C11 threads<br>
475652 Missing suppression for __wcsncpy_avx2 (strncpy-avx2.S:308)?<br>
476108 vg_replace_malloc DELETE checks size<br>
n-i-bz Allow arguments with spaces in .valgrindrc files<br>
n-i-bz FreeBSD fixed reading of Valgrind tools own debuginfo<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
(3.22.0.RC1: 17 Oct 2023)<br>
(3.22.0.RC2: 26 Oct 2023)<br>
<br>
Release 3.21.0 (28 Apr 2023)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and<br>
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* When GDB is used to debug a program running under valgrind using<br>
the valgrind gdbserver, GDB will automatically load some<br>
python code provided in valgrind defining GDB front end commands<br>
corresponding to the valgrind monitor commands.<br>
These GDB front end commands accept the same format as<br>
the monitor commands directly sent to the Valgrind gdbserver.<br>
These GDB front end commands provide a better integration<br>
in the GDB command line interface, so as to use for example<br>
GDB auto-completion, command specific help, searching for<br>
a command or command help matching a regexp, ...<br>
For relevant monitor commands, GDB will evaluate arguments<br>
to make the use of monitor commands easier.<br>
For example, instead of having to print the address of a variable<br>
to pass it to a subsequent monitor command, the GDB front end<br>
command will evaluate the address argument. It is for example<br>
possible to do:<br>
(gdb) memcheck who_points_at &some_struct sizeof(some_struct)<br>
instead of:<br>
(gdb) p &some_struct<br>
$2 = (some_struct_type *) 0x1130a0 <some_struct><br>
(gdb) p sizeof(some_struct)<br>
$3 = 40<br>
(gdb) monitor who_point_at 0x1130a0 40<br>
<br>
* The vgdb utility now supports extended-remote protocol when<br>
invoked with --multi. In this mode the GDB run command is<br>
supported. Which means you don't need to run gdb and valgrind<br>
from different terminals. So for example to start your program<br>
in gdb and run it under valgrind you can do:<br>
$ gdb prog<br>
(gdb) set remote exec-file prog<br>
(gdb) set sysroot /<br>
(gdb) target extended-remote | vgdb --multi<br>
(gdb) start<br>
<br>
* The behaviour of realloc with a size of zero can now<br>
be changed for tools that intercept malloc. Those<br>
tools are memcheck, helgrind, drd, massif and dhat.<br>
Realloc implementations generally do one of two things<br>
- free the memory like free() and return NULL<br>
(GNU libc and ptmalloc).<br>
- either free the memory and then allocate a<br>
minimum sized block or just return the<br>
original pointer. Return NULL if the<br>
allocation of the minimum sized block fails<br>
(jemalloc, musl, snmalloc, Solaris, macOS).<br>
When Valgrind is configured and built it will<br>
try to match the OS and libc behaviour. However<br>
if you are using a non-default library to replace<br>
malloc and family (e.g., musl on a glibc Linux or<br>
tcmalloc on FreeBSD) then you can use a command line<br>
option to change the behaviour of Valgrind:<br>
--realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]<br>
<br>
* ================== PLATFORM CHANGES =================<br>
<br>
* Make the address space limit on FreeBSD amd64 128Gbytes<br>
(the same as Linux and Solaris, it was 32Gbytes)<br>
<br>
* ==================== TOOL CHANGES ===================<br>
<br>
* Memcheck:<br>
- When doing a delta leak_search, it is now possible to only<br>
output the new loss records compared to the previous leak search.<br>
This is available in the memcheck monitor command 'leak_search'<br>
by specifying the "new" keyword or in your program by using<br>
the client request VALGRIND_DO_NEW_LEAK_CHECK.<br>
Whenever a "delta" leak search is done (i.e. when specifying<br>
"new" or "increased" or "changed" in the monitor command),<br>
the new loss records have a "new" marker.<br>
- Valgrind now contains python code that defines GDB memcheck<br>
front end monitor commands. See CORE CHANGES.<br>
- Performs checks for the use of realloc with a size of zero.<br>
This is non-portable and a source of errors. If memcheck<br>
detects such a usage it will generate an error<br>
realloc() with size 0<br>
followed by the usual callstacks.<br>
A switch has been added to allow this to be turned off:<br>
--show-realloc-size-zero=yes|no [yes]<br>
<br>
* Helgrind:<br>
- The option ---history-backtrace-size=<number> allows to configure<br>
the number of entries to record in the stack traces of "old"<br>
accesses. Previously, this number was hardcoded to 8.<br>
- Valgrind now contains python code that defines GDB helgrind<br>
front end monitor commands. See CORE CHANGES.<br>
<br>
* Cachegrind:<br>
- `--cache-sim=no` is now the default. The cache simulation is old and<br>
unlikely to match any real modern machine. This means only the `Ir`<br>
event are gathered by default, but that is by far the most useful<br>
event.<br>
- `cg_annotate`, `cg_diff`, and `cg_merge` have been rewritten in<br>
Python. As a result, they all have more flexible command line<br>
argument handling, e.g. supporting `--show-percs` and<br>
`--no-show-percs` forms as well as the existing `--show-percs=yes`<br>
and `--show-percs=no`.<br>
- `cg_annotate` has some functional changes.<br>
- It's much faster, e.g. 3-4x on common cases.<br>
- It now supports diffing (with `--diff`, `--mod-filename`, and<br>
`--mod-funcname`) and merging (by passing multiple data files).<br>
- It now provides more information at the file and function level.<br>
There are now "File:function" and "Function:file" sections. These<br>
are very useful for programs that use inlining a lot.<br>
- Support for user-annotated files and the `-I`/`--include` option<br>
has been removed, because it was of little use and blocked other<br>
improvements.<br>
- The `--auto` option is renamed `--annotate`, though the old<br>
`--auto=yes`/`--auto=no` forms are still supported.<br>
- `cg_diff` and `cg_merge` are now deprecated, because `cg_annotate`<br>
now does a better job of diffing and merging.<br>
- The Cachegrind output file format has changed very slightly, but in<br>
ways nobody is likely to notice.<br>
<br>
* Callgrind:<br>
- Valgrind now contains python code that defines GDB callgrind<br>
front end monitor commands. See CORE CHANGES.<br>
<br>
* Massif:<br>
- Valgrind now contains python code that defines GDB massif<br>
front end monitor commands. See CORE CHANGES.<br>
<br>
* DHAT:<br>
- A new kind of user request has been added which allows you to<br>
override the 1024 byte limit on access count histograms for blocks<br>
of memory. The client request is DHAT_HISTOGRAM_MEMORY.<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
170510 Don't warn about ioctl of size 0 without direction hint<br>
241072 List tools in --help output<br>
327548 false positive while destroying mutex<br>
382034 Testcases build fixes for musl<br>
351857 confusing error message about valid command line option<br>
374596 inconsistent RDTSCP support on x86_64<br>
392331 Spurious lock not held error from inside pthread_cond_timedwait<br>
397083 Likely false positive "uninitialised value(s)" for __wmemchr_avx2 and __wmemcmp_avx2_movbe<br>
400793 pthread_rwlock_timedwrlock false positive<br>
419054 Unhandled syscall getcpu on arm32<br>
433873 openat2 syscall unimplemented on Linux<br>
434057 Add stdio mode to valgrind's gdbserver<br>
435441 valgrind fails to interpose malloc on musl 1.2.2 due to weak symbol name and no libc soname<br>
436413 Warn about realloc of size zero<br>
439685 compiler warning in callgrind/main.c<br>
444110 priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.<br>
444487 hginfo test detects an extra lock inside data symbol "_rtld_local"<br>
444488 Use glibc.pthread.stack_cache_size tunable<br>
444568 drd/tests/pth_barrier_thr_cr fails on Fedora 38<br>
445743 "The impossible happened: mutex is locked simultaneously by two threads"<br>
while using mutexes with priority inheritance and signals<br>
449309 Missing loopback device ioctl(s) <br>
459476 vgdb: allow address reuse to avoid "address already in use" errorsuse" errors<br>
460356 s390: Sqrt32Fx4 -- cannot reduce tree<br>
462830 WARNING: unhandled amd64-freebsd syscall: 474<br>
463027 broken check for MPX instruction support in assembler<br>
464103 Enhancement: add a client request to DHAT to mark memory to be histogrammed<br>
464476 Firefox fails to start under Valgrind<br>
464609 Valgrind memcheck should support Linux pidfd_open<br>
464680 Show issues caused by memory policies like selinux deny_execmem<br>
464859 Build failures with GCC-13 (drd tsan_unittest)<br>
464969 D language demangling<br>
465435 m_libcfile.c:66 (vgPlain_safe_fd): Assertion 'newfd >= VG_(fd_hard_limit)' failed.<br>
466104 aligned_alloc problems, part 1<br>
467036 Add time cost statistics for Regtest<br>
467482 Build failure on aarch64 Alpine<br>
467714 fdleak_* and rlimit tests fail when parent process has more than<br>
64 descriptors opened<br>
467839 Gdbserver: Improve compatibility of library directory name<br>
468401 [PATCH] Add a style file for clang-format<br>
468556 Build failure for vgdb<br>
468606 build: remove "Valgrind relies on GCC" check/output<br>
469097 ppc64(be) doesn't support SCV syscall instruction<br>
n-i-bz FreeBSD rfork syscall fail with EINVAL or ENOSYS rather than VG_(unimplemented)<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
* ==================== KNOWN ISSUES ===================<br>
<br>
* configure --enable-lto=yes is know to not work in all setups.<br>
See bug 469049. Workaround: Build without LTO.<br>
<br>
(3.21.0.RC1: 14 Apr 2023)<br>
(3.21.0.RC2: 21 Apr 2023)<br>
<br>
Release 3.20.0 (24 Oct 2022)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and<br>
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* The option "--vgdb-stop-at=event1,event2,..." accepts the new value abexit.<br>
This indicates to invoke gdbserver when your program exits abnormally<br>
(i.e. with a non zero exit code).<br>
* Fix Rust v0 name demangling.<br>
* The Linux rseq syscall is now implemented as (silently) returning ENOSYS.<br>
* Add FreeBSD syscall wrappers for __specialfd and __realpathat.<br>
* Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with<br>
HardenedBSD<br>
* The option --enable-debuginfod=<no|yes> [default: yes] has been added on<br>
Linux.<br>
* More DWARF5 support as generated by clang14.<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
131186 writev reports error in (vector[...])<br>
434764 iconv_open causes ld.so v2.28+ to use optimised strncmp<br>
446754 Improve error codes from alloc functions under memcheck<br>
452274 memcheck crashes with Assertion 'sci->status.what == SsIdle' failed<br>
452779 Valgrind fails to build on FreeBSD 13.0 with llvm-devel (15.0.0)<br>
453055 shared_timed_mutex drd test fails with "Lock shared failed" message<br>
453602 Missing command line option to enable/disable debuginfod<br>
452802 Handle lld 9+ split RW PT_LOAD segments correctly<br>
454040 s390x: False-positive memcheck:cond in memmem on arch13 systems <br>
456171 [PATCH] FreeBSD: Don't record address errors when accessing the 'kern.ps_strings' sysctl struct<br>
n-i-bz Implement vgdb invoker on FreeBSD<br>
458845 PowerPC: The L field for the dcbf and sync instruction should be<br>
3 bits in ISA 3.1.<br>
458915 Remove register cache to fix 458915 gdbserver causes wrong syscall return<br>
459031 Documentation on --error-exitcode incomplete<br>
459477 XERROR messages lacks ending '\n' in vgdb<br>
462007 Implicit int in none/tests/faultstatus.c<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
(3.20.0.RC1: 20 Oct 2022)<br>
<br>
<br>
Release 3.19.0 (11 Apr 2022)<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,<br>
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,<br>
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,<br>
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and<br>
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,<br>
AMD64/macOS 10.13 and nanoMIPS/Linux.<br>
<br>
* ==================== CORE CHANGES ===================<br>
<br>
* Fix Rust v0 name demangling.<br>
* The Linux rseq syscall is now implemented as (silently) returning ENOSYS.<br>
* Add FreeBSD syscall wrappers for __specialfd and __realpathat.<br>
* Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD<br>
<br>
* ================== PLATFORM CHANGES =================<br>
<br>
* arm64:<br>
- ignore the "v8.x" architecture levels, only look at actual CPU features<br>
present. Fixes mismatch detected between RDMA and atomics features<br>
preventing startup on some QEMU configurations.<br>
- Implement LD{,A}XP and ST{,L}XP<br>
- Fix incorrect code emitted for doubleword CAS.<br>
<br>
* s390:<br>
- Fix sys_ipc semtimedop syscall<br>
- Fix VFLRX and WFLRX instructions<br>
- Fix EXRL instruction with negative offset<br>
<br>
* ppc64:<br>
- Reimplement the vbpermq instruction support to generate less Iops and<br>
avoid overflowing internal buffers.<br>
- Fix checking for scv support to avoid "Facility 'SCV' unavailable (12),<br>
exception" messages in dmsg.<br>
- Fix setting condition code for Vector Compare quad word instructions.<br>
- Fix fix lxsibzx, lxsihzx and lxsihzx instructions so they only load<br>
their respective sized data.<br>
- Fix the prefixed stq instruction in PC relative mode.<br>
<br>
* ==================== TOOL CHANGES ===================<br>
<br>
* Memcheck:<br>
- Speed up --track-origins=yes for large (in the range of hundreds to<br>
thousands of megabytes) mmap/munmaps.<br>
* DRD/Helgrind:<br>
- Several fixes for new versions of libstd++ using new posix try_lock<br>
functions<br>
<br>
* ==================== FIXED BUGS ====================<br>
<br>
The following bugs have been fixed or resolved. Note that "n-i-bz"<br>
stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
but never got a bugzilla entry. We encourage you to file bugs in<br>
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
than mailing the developers (or mailing lists) directly -- bugs that<br>
are not entered into bugzilla tend to get forgotten about or ignored.<br>
<br>
403802 leak_cpp_interior fails with some reachable blocks different than expected<br>
435732 memcheck/tests/leak_cpp_interior fails with gcc11<br>
444242 s390x: Valgrind crashes on EXRL with negative offset<br>
444399 arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).<br>
== 434283<br>
444481 gdb_server test failures on s390x<br>
444495 dhat/tests/copy fails on s390x<br>
444552 memcheck/tests/sem fails on s390x with glibc 2.34<br>
444571 PPC, fix the lxsibzx and lxsihzx so they only load their respective<br>
sized data.<br>
444836 PPC, pstq instruction for R=1 is not storing to the correct address.<br>
444925 fexecve syscall wrapper not properly implemented<br>
445032 valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and<br>
libthr.so associated<br>
445211 Fix out of tree builds<br>
445300 [PATCH] Fix building tests with Musl<br>
445011 SIGCHLD is sent when valgrind uses debuginfod-find<br>
445354 arm64 backend: incorrect code emitted for doubleword CAS<br>
445415 arm64 front end: alignment checks missing for atomic instructions<br>
445504 Using C++ condition_variable results in bogus "mutex is locked simultaneously by two threads" warning<br>
445607 Unhandled amd64-freebsd syscall: 247<br>
445668 Inline stack frame generation is broken for Rust binaries<br>
445916 Demangle Rust v0 symbols with .llvm suffix<br>
446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false positives<br>
446138 DRD/Helgrind with std::timed_mutex::try_lock_until false positives<br>
446281 Add a DRD suppression for fwrite<br>
446103 Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap<br>
446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false<br>
446251 TARGET_SIGNAL_THR added to enum target_signal<br>
446823 FreeBSD - missing syscalls when using libzm4<br>
447991 s390x: Valgrind indicates illegal instruction on wflrx<br>
447995 Valgrind segfault on power10 due to hwcap checking code<br>
449483 Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the<br>
condition code correctly.<br>
449672 ppc64 --track-origins=yes failures because of bad cmov addHRegUse<br>
449838 sigsegv liburing the 'impossible' happened for io_uring_setup<br>
450025 Powerc: ACC file not implemented as a logical overlay of the VSR<br>
registers.<br>
450437 Warn for execve syscall with argv or argv[0] being NULL<br>
450536 Powerpc: valgrind throws 'facility scv unavailable exception'<br>
451626 Syscall param bpf(attr->raw_tracepoint.name) points to unaddressable byte(s)<br>
451827 [ppc64le] VEX temporary storage exhausted with several vbpermq instructions<br>
451843 valgrind fails to start on a FreeBSD system which enforces W^X<br>
<br>
To see details of a given bug, visit<br>
https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
where XXXXXX is the bug number as listed above.<br>
<br>
(3.19.0.RC1: 02 Apr 2022)<br>
(3.19.0.RC2: 08 Apr 2022)<br>
<br>
</p></div>
</div>
<div>
<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
<tr>
<td rowspan="2" width="40%" align="left">
<a accesskey="p" href="dist.authors.html"><< 1. AUTHORS</a> </td>
<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.news.old.html">3. OLDER NEWS >></a>
</td>
</tr>
<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
</table>
</div>
</body>
</html>
|