Thread confusion on OS-X

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Thread confusion on OS-X

Alex Bligh
I am trying to run valgrind 3.11.0 on OS-X 10.11.5 to track down a bug in Qemu 2.6.0.

I fully suspect this is:
 https://bugs.kde.org/show_bug.cgi?id=354883

My question is simply whether I should expect valgrind to work on 10.11 with threads if I compile trunk from source, or whether I need to look at some other way of hunting my issue down.


....

Details:

Before I get to the area of the bug I am seeing this, from what I think is the first call to pthread_create:


==64295== Syscall param __pthread_sigmask(set) points to uninitialised byte(s)
==64295==    at 0x105887F36: __pthread_sigmask (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x1059DF9B0: pthread_sigmask (in /usr/lib/system/libsystem_pthread.dylib)
==64295==    by 0x1003261EE: qemu_thread_create (qemu-thread-posix.c:479)
==64295==    by 0x100336302: rcu_init (rcu.c:316)
==64295==    by 0x7FFF5FC1310A: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC13283: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC0F8BC: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC0F742: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC0F9B2: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC020F0: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC05D97: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==64295==    by 0x7FFF5FC01275: dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) (in /usr/lib/dyld)
==64295==  Address 0x10540d5e8 is on thread 1's stack
==64295==  in frame #2, created by qemu_thread_create (qemu-thread-posix.c:452)


The area of code this comes from is as follows:

void qemu_thread_create(QemuThread *thread, const char *name,
                       void *(*start_routine)(void*),
                       void *arg, int mode)
{
    sigset_t set, oldset;
    int err;
    pthread_attr_t attr;

    err = pthread_attr_init(&attr);
    if (err) {
        error_exit(err, __func__);
    }
    if (mode == QEMU_THREAD_DETACHED) {
        err = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
        if (err) {
            error_exit(err, __func__);
        }
    }

    /* Leave signal handling to the iothread.  */
    sigfillset(&set);
    pthread_sigmask(SIG_SETMASK, &set, &oldset);
    err = pthread_create(&thread->thread, &attr, start_routine, arg);
    if (err)
        error_exit(err, __func__);

    if (name_threads) {
        qemu_thread_set_name(thread, name);
    }

    pthread_sigmask(SIG_SETMASK, &oldset, NULL); // <---- LINE 479

    pthread_attr_destroy(&attr);

}


Line 479 passes only the address of oldset, which is on the correct stack frame as far as I can see. It's almost like it's got confused as to what stack frame it is actually tracing, i.e. it thinks the thread created by pthread_create is thread #1 (the one that came in) and the thread that continues is thread #2.

I then see the abort on assertion:
valgrind: m_syswrap/syswrap-amd64-darwin.c:507 (void wqthread_hijack(Addr, Addr, Addr, Addr, Int, Addr)): Assertion 'tst->os_state.pthread - magic_delta == self' failed.

which again suggests it's lost track of things.

valgrind -v -v true also attached below


--
Alex Bligh


Assertion
=========

valgrind: m_syswrap/syswrap-amd64-darwin.c:507 (void wqthread_hijack(Addr, Addr, Addr, Addr, Int, Addr)): Assertion 'tst->os_state.pthread - magic_delta == self' failed.

host stacktrace:
==64295==    at 0x238040B6C: ???
==64295==    by 0x238040F77: ???
==64295==    by 0x238040F5A: ???
==64295==    by 0x2380DFCD9: ???

sched status:
  running_tid=0

Thread 1: status = VgTs_WaitSys (lwpid 2567)
==64295==    at 0x105881FAE: semaphore_wait_trap (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x104BB9CB1: _dispatch_semaphore_wait_slow (in /usr/lib/system/libdispatch.dylib)
==64295==    by 0x105A3FBA8: xpc_connection_send_message_with_reply_sync (in /usr/lib/system/libxpc.dylib)
==64295==    by 0x106EE7158: LSClientToServerConnection::setupServerConnection(int, __CFDictionary const*) (in /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices)
==64295==    by 0x106EE6FB8: LSClientToServerConnection::LSClientToServerConnection(int, __CFDictionary const*, bool) (in /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices)
==64295==    by 0x106EE5A5E: _LSApplicationCheckIn (in /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices)
==64295==    by 0x107A93091: _RegisterApplication (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
==64295==    by 0x107AB8E24: TransformProcessType (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
==64295==    by 0x10026458D: main (cocoa.m:1176)

Thread 2: status = VgTs_WaitSys (lwpid 4099)
==64295==    at 0x105887DB6: __psynch_cvwait (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x1059E0727: _pthread_cond_wait (in /usr/lib/system/libsystem_pthread.dylib)
==64295==    by 0x100326043: qemu_event_wait (qemu-thread-posix.c:319)
==64295==    by 0x1003364D3: call_rcu_thread (rcu.c:250)
==64295==    by 0x1059DF99C: _pthread_body (in /usr/lib/system/libsystem_pthread.dylib)
==64295==    by 0x1059DF919: _pthread_start (in /usr/lib/system/libsystem_pthread.dylib)
==64295==    by 0x1059DD350: thread_start (in /usr/lib/system/libsystem_pthread.dylib)

Thread 3: status = VgTs_WaitSys (lwpid 3847)
==64295==    at 0x1058885E2: __workq_kernreturn (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x1059DF577: _pthread_wqthread (in /usr/lib/system/libsystem_pthread.dylib)
==64295==    by 0x1059DD340: start_wqthread (in /usr/lib/system/libsystem_pthread.dylib)

Thread 4: status = VgTs_WaitSys (lwpid 6659)
==64295==    at 0x10588816A: sendto (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x1059CE5F5: _simple_asl_send (in /usr/lib/system/libsystem_platform.dylib)
==64295==    by 0x1059CE3F5: _simple_asl_log_prog (in /usr/lib/system/libsystem_platform.dylib)
==64295==    by 0x104BC4D9B: _dispatch_log (in /usr/lib/system/libdispatch.dylib)
==64295==    by 0x104BB41A9: _dispatch_mgr_invoke (in /usr/lib/system/libdispatch.dylib)
==64295==    by 0x104BB3DCC: _dispatch_mgr_thread (in /usr/lib/system/libdispatch.dylib)

Thread 5: status = VgTs_WaitSys (lwpid 6407)
==64295==    at 0x1058885E2: __workq_kernreturn (in /usr/lib/system/libsystem_kernel.dylib)
==64295==    by 0x2380DFCD9: ???
==64295==    by 0x2382081AF: ???
==64295==    by 0x397: ???
==64295==    by 0x70000000A647: ???


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.



valgrind -v -v true
===================

$ valgrind -v -v true
==64373== Memcheck, a memory error detector
==64373== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==64373== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==64373== Command: true
==64373==
--64373-- Valgrind options:
--64373--    -v
--64373--    -v
--64373-- Output from sysctl({CTL_KERN,KERN_VERSION}):
--64373--   Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64
--64373-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi
--64373-- Page sizes: currently 4096, max supported 4096
--64373-- Valgrind library directory: /usr/local/Cellar/valgrind/3.11.0/lib/valgrind
--64373-- TT/TC: VG_(init_tt_tc) (startup of code management)
--64373-- TT/TC: cache: ignoring --avg-transtab-entry-size=0, using tool provided default 640
--64373-- TT/TC: cache: 16 sectors of 27597024 bytes each = 441552384 total TC
--64373-- TT/TC: table: 16 tables[42588]  of 6473376 bytes each = 103574016 total TT
--64373-- TT/TC: table: 42588 tt entries each = 681408 total tt entries
--64373-- TT/TC: table: 16 htt[65521] of 131042 bytes each = 2096672 total HTT (htt[65521] 65% max occup)
--64373-- /usr/bin/true (rx at 0x100000000, rw at 0x100001000)
--64373--    reading syms   from primary file (1 1)
--64373-- /usr/lib/dyld (rx at 0x7fff5fc00000, rw at 0x7fff5fc38000)
--64373--    reading syms   from primary file (6 1227)
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc1e4c0 (strcpy              ) R-> (0000.0) 0x23805b99d ???
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc1e560 (strlen              ) R-> (0000.0) 0x23805b950 ???
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc1e799 (arc4random          ) R-> (0000.0) 0x23805ba1f ???
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc21ebf (strcat              ) R-> (0000.0) 0x23805b961 ???
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc21eff (strlcat             ) R-> (0000.0) 0x23805b9ba ???
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc24960 (strcmp              ) R-> (0000.0) 0x23805b981 ???
--64373-- Scheduler: using generic scheduler lock implementation.
--64373-- Reading suppressions file: /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp
==64373== embedded gdbserver: reading from /var/folders/_r/zj8cp1n90vjgfjgm2clvqvjh0000gn/T//vgdb-pipe-from-vgdb-to-64373-by-amb-on-???
==64373== embedded gdbserver: writing to   /var/folders/_r/zj8cp1n90vjgfjgm2clvqvjh0000gn/T//vgdb-pipe-to-vgdb-from-64373-by-amb-on-???
==64373== embedded gdbserver: shared mem   /var/folders/_r/zj8cp1n90vjgfjgm2clvqvjh0000gn/T//vgdb-pipe-shared-mem-vgdb-64373-by-amb-on-???
==64373==
==64373== TO CONTROL THIS PROCESS USING vgdb (which you probably
==64373== don't want to do, unless you know exactly what you're doing,
==64373== or are doing some strange experiment):
==64373==   /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/../../bin/vgdb --pid=64373 ...command...
==64373==
==64373== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==64373==   /path/to/gdb true
==64373== and then give GDB the following command
==64373==   target remote | /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/../../bin/vgdb --pid=64373
==64373== --pid is optional if only one valgrind process is running
==64373==
--64373-- TT/TC: initialise sector 0
--64373-- REDIR: 0x7fff5fc1e799 (dyld:arc4random) redirected to 0x23805ba1f (???)
--64373-- REDIR: 0x7fff5fc24960 (dyld:strcmp) redirected to 0x23805b981 (???)
--64373-- REDIR: 0x7fff5fc21eff (dyld:strlcat) redirected to 0x23805b9ba (???)
--64373-- REDIR: 0x7fff5fc1e560 (dyld:strlen) redirected to 0x23805b950 (???)
--64373-- REDIR: 0x7fff5fc1e4c0 (dyld:strcpy) redirected to 0x23805b99d (???)
--64373-- REDIR: 0x7fff5fc21ebf (dyld:strcat) redirected to 0x23805b961 (???)
--64373-- /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/vgpreload_core-amd64-darwin.so (rx at 0x100005000, rw at 0x100007000)
--64373--    reading syms   from primary file (3 21)
--64373--    dSYM= /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/vgpreload_core-amd64-darwin.so.dSYM/Contents/Resources/DWARF/vgpreload_core-amd64-darwin.so
--64373-- /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so (rx at 0x100009000, rw at 0x10000f000)
--64373--    reading syms   from primary file (72 29)
--64373--    dSYM= /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so.dSYM/Contents/Resources/DWARF/vgpreload_memcheck-amd64-darwin.so
==64373== Adding active redirection:
--64373--     new: 0x7fff5fc247c0 (memchr              ) R-> (2017.0) 0x10000cb17 memchr
--64373-- /usr/lib/libSystem.B.dylib (rx at 0x100012000, rw at 0x100014000)
--64373--    reading syms   from primary file (31 5)
--64373-- /usr/lib/system/libcache.dylib (rx at 0x100019000, rw at 0x10001e000)
--64373--    reading syms   from primary file (32 30)
--64373-- /usr/lib/system/libcommonCrypto.dylib (rx at 0x100023000, rw at 0x10002f000)
--64373--    reading syms   from primary file (214 188)
--64373-- /usr/lib/system/libcompiler_rt.dylib (rx at 0x10003c000, rw at 0x100044000)
--64373--    reading syms   from primary file (510 8)
--64373-- /usr/lib/system/libcopyfile.dylib (rx at 0x100051000, rw at 0x10005a000)
--64373--    reading syms   from primary file (13 35)
--64373-- /usr/lib/system/libcorecrypto.dylib (rx at 0x100060000, rw at 0x1000d8000)
--64373--    reading syms   from primary file (430 601)
--64373-- /usr/lib/system/libdispatch.dylib (rx at 0x1000f0000, rw at 0x10011e000)
--64373--    reading syms   from primary file (215 832)
--64373-- /usr/lib/system/libdyld.dylib (rx at 0x100147000, rw at 0x10014b000)
--64373--    reading syms   from primary file (80 109)
--64373-- /usr/lib/system/libkeymgr.dylib (rx at 0x100152000, rw at 0x100153000)
--64373--    reading syms   from primary file (12 3)
--64373-- /usr/lib/system/libmacho.dylib (rx at 0x10015e000, rw at 0x100164000)
--64373--    reading syms   from primary file (97 1)
--64373-- /usr/lib/system/libquarantine.dylib (rx at 0x10016a000, rw at 0x10016d000)
--64373--    reading syms   from primary file (67 32)
--64373-- /usr/lib/system/libremovefile.dylib (rx at 0x100173000, rw at 0x100175000)
--64373--    reading syms   from primary file (15 4)
--64373-- /usr/lib/system/libsystem_asl.dylib (rx at 0x10017a000, rw at 0x100192000)
--64373--    reading syms   from primary file (222 225)
--64373-- /usr/lib/system/libsystem_blocks.dylib (rx at 0x10019f000, rw at 0x1001a1000)
--64373--    reading syms   from primary file (25 22)
--64373-- /usr/lib/system/libsystem_c.dylib (rx at 0x1001a5000, rw at 0x100233000)
--64373--    reading syms   from primary file (1303 748)
==64373== Adding active redirection:
--64373--     new: 0x1001a6140 (strlen              ) R-> (2007.0) 0x10000c6b4 strlen
==64373== Adding active redirection:
--64373--     new: 0x1001a61a0 (strncpy             ) R-> (2009.0) 0x10000c83e strncpy
==64373== Adding active redirection:
--64373--     new: 0x10020101a (strrchr             ) R-> (2001.0) 0x10000c504 strrchr
--64373-- /usr/lib/system/libsystem_configuration.dylib (rx at 0x10025e000, rw at 0x100261000)
--64373--    reading syms   from primary file (28 57)
--64373-- /usr/lib/system/libsystem_coreservices.dylib (rx at 0x100267000, rw at 0x10026a000)
--64373--    reading syms   from primary file (13 30)
--64373-- /usr/lib/system/libsystem_coretls.dylib (rx at 0x10026f000, rw at 0x100287000)
--64373--    reading syms   from primary file (118 233)
--64373-- /usr/lib/system/libsystem_dnssd.dylib (rx at 0x100290000, rw at 0x100299000)
--64373--    reading syms   from primary file (68 33)
--64373-- /usr/lib/system/libsystem_info.dylib (rx at 0x10029f000, rw at 0x1002c9000)
--64373--    reading syms   from primary file (526 527)
--64373-- /usr/lib/system/libsystem_kernel.dylib (rx at 0x1002de000, rw at 0x1002fd000)
--64373--    reading syms   from primary file (1069 84)
--64373-- /usr/lib/system/libsystem_m.dylib (rx at 0x100312000, rw at 0x100342000)
--64373--    reading syms   from primary file (593 1)
--64373-- /usr/lib/system/libsystem_malloc.dylib (rx at 0x10034e000, rw at 0x10036b000)
--64373--    reading syms   from primary file (102 201)
==64373== Adding active redirection:
--64373--     new: 0x10034f0a2 (malloc              ) R-> (1001.0) 0x10000ae3a malloc
==64373== Adding active redirection:
--64373--     new: 0x1003504c1 (malloc_set_zone_name) R-> (1027.0) 0x10000c355 malloc_set_zone_name
==64373== Adding active redirection:
--64373--     new: 0x10035055a (malloc_zone_malloc  ) R-> (1002.0) 0x10000b0ee malloc_zone_malloc
==64373== Adding active redirection:
--64373--     new: 0x100351e98 (free                ) R-> (1005.0) 0x10000b27a free
==64373== Adding active redirection:
--64373--     new: 0x100353939 (malloc_default_zone ) R-> (1021.0) 0x10000c2a4 malloc_default_zone
==64373== Adding active redirection:
--64373--     new: 0x100353958 (malloc_zone_calloc  ) R-> (1006.0) 0x10000b6f4 malloc_zone_calloc
==64373== Adding active redirection:
--64373--     new: 0x100353a12 (malloc_zone_from_ptr) R-> (1023.0) 0x10000c2e5 malloc_zone_from_ptr
==64373== Adding active redirection:
--64373--     new: 0x100354431 (calloc              ) R-> (1007.0) 0x10000b4f2 calloc
==64373== Adding active redirection:
--64373--     new: 0x100354634 (realloc             ) R-> (1009.0) 0x10000b896 realloc
==64373== Adding active redirection:
--64373--     new: 0x10035479d (malloc_zone_realloc ) R-> (1008.0) 0x10000ba84 malloc_zone_realloc
==64373== Adding active redirection:
--64373--     new: 0x1003569e0 (malloc_zone_memalign) R-> (1010.0) 0x10000be3c malloc_zone_memalign
==64373== Adding active redirection:
--64373--     new: 0x10035713a (malloc_create_zone  ) R-> (1022.0) 0x10000c2d8 malloc_create_zone
==64373== Adding active redirection:
--64373--     new: 0x1003571a6 (malloc_zone_free    ) R-> (1004.0) 0x10000b3a0 malloc_zone_free
==64373== Adding active redirection:
--64373--     new: 0x10035723b (malloc_size         ) R-> (1017.0) 0x10000c0e2 malloc_size
==64373== Adding active redirection:
--64373--     new: 0x1003572d7 (malloc_zone_register) R-> (1025.0) 0x10000c329 malloc_zone_register
==64373== Adding active redirection:
--64373--     new: 0x100357304 (valloc              ) R-> (1012.0) 0x10000c00c valloc
==64373== Adding active redirection:
--64373--     new: 0x10035734b (malloc_zone_valloc  ) R-> (1013.0) 0x10000c06a malloc_zone_valloc
==64373== Adding active redirection:
--64373--     new: 0x100359353 (malloc_default_purge) R-> (1021.0) 0x10000c2be malloc_default_purgeable_zone
==64373== Adding active redirection:
--64373--     new: 0x1003610aa (malloc_zone_unregist) R-> (1026.0) 0x10000c33f malloc_zone_unregister
==64373== Adding active redirection:
--64373--     new: 0x1003614d6 (malloc_get_zone_name) R-> (1027.0) 0x10000c36b malloc_get_zone_name
==64373== Adding active redirection:
--64373--     new: 0x100361988 (malloc_zone_check   ) R-> (1024.0) 0x10000c2ff malloc_zone_check
--64373-- /usr/lib/system/libsystem_network.dylib (rx at 0x100374000, rw at 0x1003db000)
--64373--    reading syms   from primary file (686 2055)
--64373-- /usr/lib/system/libsystem_networkextension.dylib (rx at 0x100412000, rw at 0x10041b000)
--64373--    reading syms   from primary file (85 236)
--64373-- /usr/lib/system/libsystem_notify.dylib (rx at 0x100426000, rw at 0x100430000)
--64373--    reading syms   from primary file (136 53)
--64373-- /usr/lib/system/libsystem_platform.dylib (rx at 0x100438000, rw at 0x100441000)
--64373--    reading syms   from primary file (142 158)
==64373== Adding active redirection:
--64373--     new: 0x100438ac0 (_platform_memchr$VAR) R-> (2017.0) 0x10000cb45 _platform_memchr$VARIANT$Generic
==64373== Adding active redirection:
--64373--     new: 0x100438ba0 (_platform_memchr$VAR) R-> (2017.0) 0x10000cb73 _platform_memchr$VARIANT$Haswell
==64373== Adding active redirection:
--64373--     new: 0x100438c80 (_platform_memcmp    ) R-> (2019.0) 0x10000d0af _platform_memcmp
==64373== Adding active redirection:
--64373--     new: 0x100439220 (_platform_strncmp   ) R-> (2011.0) 0x10000ca25 _platform_strncmp
==64373== Adding active redirection:
--64373--     new: 0x100439380 (_platform_strchr$VAR) R-> (2002.0) 0x10000c54d _platform_strchr$VARIANT$Generic
==64373== Adding active redirection:
--64373--     new: 0x100439400 (_platform_strchr$VAR) R-> (2002.0) 0x10000c57a _platform_strchr$VARIANT$Haswell
==64373== Adding active redirection:
--64373--     new: 0x100439520 (_platform_memmove$VA) R-> (2018.1) 0x10000d5c4 _platform_memmove$VARIANT$Ivybridge
==64373== Adding active redirection:
--64373--     new: 0x100439800 (_platform_strcmp    ) R-> (2016.0) 0x10000cac5 _platform_strcmp
--64373-- /usr/lib/system/libsystem_pthread.dylib (rx at 0x100449000, rw at 0x100453000)
--64373--    reading syms   from primary file (163 70)
--64373-- /usr/lib/system/libsystem_sandbox.dylib (rx at 0x100460000, rw at 0x100464000)
--64373--    reading syms   from primary file (80 7)
--64373-- /usr/lib/system/libsystem_secinit.dylib (rx at 0x10046a000, rw at 0x10046c000)
--64373--    reading syms   from primary file (3 6)
--64373-- /usr/lib/system/libsystem_trace.dylib (rx at 0x100471000, rw at 0x100483000)
--64373--    reading syms   from primary file (94 351)
--64373-- /usr/lib/system/libunwind.dylib (rx at 0x100495000, rw at 0x10049b000)
--64373--    reading syms   from primary file (102 52)
--64373-- /usr/lib/system/libxpc.dylib (rx at 0x1004a2000, rw at 0x1004cc000)
--64373--    reading syms   from primary file (506 835)
--64373-- /usr/lib/libobjc.A.dylib (rx at 0x1004ea000, rw at 0x10084d000)
--64373--    reading syms   from primary file (347 935)
--64373-- /usr/lib/libauto.dylib (rx at 0x100929000, rw at 0x100970000)
--64373--    reading syms   from primary file (68 658)
--64373-- /usr/lib/libc++abi.dylib (rx at 0x100985000, rw at 0x1009af000)
--64373--    reading syms   from primary file (337 181)
--64373-- /usr/lib/libc++.1.dylib (rx at 0x1009bd000, rw at 0x100a11000)
--64373--    reading syms   from primary file (1960 1590)
--64373-- /usr/lib/libDiagnosticMessagesClient.dylib (rx at 0x100a6d000, rw at 0x100a6f000)
--64373--    reading syms   from primary file (21 14)
--64373-- REDIR: 0x100438ba0 (libsystem_platform.dylib:_platform_memchr$VARIANT$Haswell) redirected to 0x10000cb73 (_platform_memchr$VARIANT$Haswell)
--64373-- REDIR: 0x100438c80 (libsystem_platform.dylib:_platform_memcmp) redirected to 0x10000d0af (_platform_memcmp)
--64373-- REDIR: 0x100439220 (libsystem_platform.dylib:_platform_strncmp) redirected to 0x10000ca25 (_platform_strncmp)
--64373-- REDIR: 0x10034f0a2 (libsystem_malloc.dylib:malloc) redirected to 0x10000ae3a (malloc)
--64373-- REDIR: 0x1001a6140 (libsystem_c.dylib:strlen) redirected to 0x10000c6b4 (strlen)
--64373-- REDIR: 0x100439800 (libsystem_platform.dylib:_platform_strcmp) redirected to 0x10000cac5 (_platform_strcmp)
--64373-- REDIR: 0x100351e98 (libsystem_malloc.dylib:free) redirected to 0x10000b27a (free)
--64373-- REDIR: 0x100354431 (libsystem_malloc.dylib:calloc) redirected to 0x10000b4f2 (calloc)
--64373-- REDIR: 0x100353939 (libsystem_malloc.dylib:malloc_default_zone) redirected to 0x10000c2a4 (malloc_default_zone)
--64373-- REDIR: 0x10035055a (libsystem_malloc.dylib:malloc_zone_malloc) redirected to 0x10000b0ee (malloc_zone_malloc)
--64373-- REDIR: 0x100353958 (libsystem_malloc.dylib:malloc_zone_calloc) redirected to 0x10000b6f4 (malloc_zone_calloc)
--64373-- REDIR: 0x100353a12 (libsystem_malloc.dylib:malloc_zone_from_ptr) redirected to 0x10000c2e5 (malloc_zone_from_ptr)
--64373-- REDIR: 0x100439400 (libsystem_platform.dylib:_platform_strchr$VARIANT$Haswell) redirected to 0x10000c57a (_platform_strchr$VARIANT$Haswell)
--64373-- REDIR: 0x100354634 (libsystem_malloc.dylib:realloc) redirected to 0x10000b896 (realloc)
--64373-- REDIR: 0x1003569e0 (libsystem_malloc.dylib:malloc_zone_memalign) redirected to 0x10000be3c (malloc_zone_memalign)
==64373==
==64373== HEAP SUMMARY:
==64373==     in use at exit: 22,157 bytes in 187 blocks
==64373==   total heap usage: 269 allocs, 82 frees, 28,349 bytes allocated
==64373==
==64373== Searching for pointers to 187 not-freed blocks
--64373--   Scanning root segment: 0x100001000..0x100001fff (4096)
--64373--   Scanning root segment: 0x100007000..0x100007fff (4096)
--64373--   Scanning root segment: 0x10000f000..0x10000ffff (4096)
--64373--   Scanning root segment: 0x100014000..0x100014fff (4096)
--64373--   Scanning root segment: 0x10001e000..0x10001efff (4096)
--64373--   Scanning root segment: 0x10002f000..0x100030fff (8192)
--64373--   Scanning root segment: 0x100044000..0x100044fff (4096)
--64373--   Scanning root segment: 0x10005a000..0x10005afff (4096)
--64373--   Scanning root segment: 0x1000d8000..0x1000dffff (32768)
--64373--   Scanning root segment: 0x10011e000..0x10012efff (69632)
--64373--   Scanning root segment: 0x10014b000..0x10014bfff (4096)
--64373--   Scanning root segment: 0x100153000..0x100153fff (4096)
--64373--   Scanning root segment: 0x100164000..0x100164fff (4096)
--64373--   Scanning root segment: 0x10016d000..0x10016dfff (4096)
--64373--   Scanning root segment: 0x100175000..0x100175fff (4096)
--64373--   Scanning root segment: 0x100192000..0x100193fff (8192)
--64373--   Scanning root segment: 0x1001a1000..0x1001a1fff (4096)
--64373--   Scanning root segment: 0x100233000..0x10023afff (32768)
--64373--   Scanning root segment: 0x100261000..0x100261fff (4096)
--64373--   Scanning root segment: 0x10026a000..0x10026afff (4096)
--64373--   Scanning root segment: 0x100287000..0x100287fff (4096)
--64373--   Scanning root segment: 0x100299000..0x100299fff (4096)
--64373--   Scanning root segment: 0x1002c9000..0x1002cafff (8192)
--64373--   Scanning root segment: 0x1002fd000..0x1002fffff (12288)
--64373--   Scanning root segment: 0x100342000..0x100342fff (4096)
--64373--   Scanning root segment: 0x10036b000..0x10036bfff (4096)
--64373--   Scanning root segment: 0x1003db000..0x1003e1fff (28672)
--64373--   Scanning root segment: 0x10041b000..0x10041bfff (4096)
--64373--   Scanning root segment: 0x100430000..0x100430fff (4096)
--64373--   Scanning root segment: 0x100441000..0x100441fff (4096)
--64373--   Scanning root segment: 0x100453000..0x100453fff (4096)
--64373--   Scanning root segment: 0x100464000..0x100464fff (4096)
--64373--   Scanning root segment: 0x10046c000..0x10046cfff (4096)
--64373--   Scanning root segment: 0x100483000..0x100484fff (8192)
--64373--   Scanning root segment: 0x10049b000..0x10049bfff (4096)
--64373--   Scanning root segment: 0x1004cc000..0x1004d1fff (24576)
--64373--   Scanning root segment: 0x10084d000..0x100907fff (765952)
--64373--   Scanning root segment: 0x100970000..0x100970fff (4096)
--64373--   Scanning root segment: 0x1009af000..0x1009b0fff (8192)
--64373--   Scanning root segment: 0x100a11000..0x100a17fff (28672)
--64373--   Scanning root segment: 0x100a6f000..0x100a6ffff (4096)
--64373--   Scanning root segment: 0x100a74000..0x100a74fff (4096)
--64373--   Scanning root segment: 0x104005000..0x104804fff (8388608)
--64373--   Scanning root segment: 0x7fff5f400000..0x7fff5fbfffff (8388608)
--64373--   Scanning root segment: 0x7fff5fc38000..0x7fff5fc3afff (12288)
--64373--   Scanning root segment: 0x7fff5fc3b000..0x7fff5fc73fff (233472)
==64373== Checked 9,806,288 bytes
==64373==
==64373== LEAK SUMMARY:
==64373==    definitely lost: 0 bytes in 0 blocks
==64373==    indirectly lost: 0 bytes in 0 blocks
==64373==      possibly lost: 2,064 bytes in 1 blocks
==64373==    still reachable: 0 bytes in 0 blocks
==64373==         suppressed: 20,093 bytes in 186 blocks
==64373== Rerun with --leak-check=full to see details of leaked memory
==64373==
==64373== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
--64373--
--64373-- used_suppression:      1 OSX1011:21-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:944 suppressed: 4,096 bytes in 1 blocks
--64373-- used_suppression:     10 OSX1011:17-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:906 suppressed: 3,392 bytes in 55 blocks
--64373-- used_suppression:      3 OSX1011:16-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:897 suppressed: 2,816 bytes in 44 blocks
--64373-- used_suppression:     17 OSX1011:4-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:778 suppressed: 8,016 bytes in 31 blocks
--64373-- used_suppression:      1 OSX1011:1-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:747 suppressed: 528 bytes in 1 blocks
--64373-- used_suppression:     20 OSX1011:10-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:839 suppressed: 2,621 bytes in 42 blocks
--64373-- used_suppression:      2 OSX1011:8-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:819 suppressed: 520 bytes in 2 blocks
--64373-- used_suppression:      2 OSX1011:20-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:934 suppressed: 224 bytes in 5 blocks
--64373-- used_suppression:      5 OSX1011:18-Leak /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/default.supp:915 suppressed: 168 bytes in 5 blocks
==64373==
==64373== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
armonie:qemu amb$



------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|

Re: Thread confusion on OS-X

Alex Bligh

> On 17 Jun 2016, at 14:42, Alex Bligh <[hidden email]> wrote:
>
> My question is simply whether I should expect valgrind to work on 10.11 with threads if I compile trunk from source, or whether I need to look at some other way of hunting my issue down.

The next problem being (OS-X 10.11.5, cvs trunk as of today):

$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in include
make[2]: Nothing to be done for `all'.
Making all in VEX
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
make[3]: Nothing to be done for `all-am'.
Making all in coregrind
make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'.  Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


--
Alex Bligh





------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|

Re: Thread confusion on OS-X

John Reiser
> The next problem being (OS-X 10.11.5, cvs trunk as of today):
>
> $ make
> /Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
> Making all in include
> make[2]: Nothing to be done for `all'.
> Making all in VEX
> /Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
> make[3]: Nothing to be done for `all-am'.
> Making all in coregrind
> make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'.  Stop.

Try "make clean" first, particularly if this is not the first 'make'.
The file generated by 'make' which records the header dependencies
says that mach_vmUser.c #includes mach_vm.defs.  Look for those filenames
(find /usr/include -iname mach_vmUser.c -o -iname mach_vm.defs")
to see if they really exist on some other path(s).  Search for those
filenames on the web, and look for the pathnames in which they reside.
Reconcile.  Beware that the default HFS+ has case-independent filenames,
but case-dependent is an option, and case matters on most non-HFS+ filesystems.


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|

Re: Thread confusion on OS-X

Alex Bligh
In reply to this post by Alex Bligh

> On 17 Jun 2016, at 14:42, Alex Bligh <[hidden email]> wrote:
>
> I am trying to run valgrind 3.11.0 on OS-X 10.11.5 to track down a bug in Qemu 2.6.0.
>
> I fully suspect this is:
> https://bugs.kde.org/show_bug.cgi?id=354883
>
> My question is simply whether I should expect valgrind to work on 10.11 with threads if I compile trunk from source, or whether I need to look at some other way of hunting my issue down.
>
>
> ....
>
> Details:

This appears not to be fixed

$ svn info
Path: .
Working Copy Root Path: /Users/amb/valgrind/valgrind
URL: svn://svn.valgrind.org/valgrind/trunk
Repository Root: svn://svn.valgrind.org/valgrind
Repository UUID: a5019735-40e9-0310-863c-91ae7b9d1cf9
Revision: 15892
Node Kind: directory
Schedule: normal
Last Changed Author: carll
Last Changed Rev: 15892
Last Changed Date: 2016-06-13 18:30:24 +0100 (Mon, 13 Jun 2016)

==80865== Syscall param __pthread_sigmask(set) points to uninitialised byte(s)
==80865==    at 0x10588DF36: __pthread_sigmask (in /usr/lib/system/libsystem_kernel.dylib)
==80865==    by 0x1059E59B0: pthread_sigmask (in /usr/lib/system/libsystem_pthread.dylib)
==80865==    by 0x1003261EE: qemu_thread_create (qemu-thread-posix.c:479)
==80865==    by 0x100336302: rcu_init (rcu.c:316)
==80865==    by 0x7FFF5FC1310A: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC13283: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC0F8BC: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC0F742: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC0F9B2: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC020F0: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC05D97: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==80865==    by 0x7FFF5FC01275: dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) (in /usr/lib/dyld)
==80865==  Address 0x10540d608 is on thread 1's stack
==80865==  in frame #2, created by qemu_thread_create (qemu-thread-posix.c:452)

$ valgrind --version
valgrind-3.12.0.SVN

--
Alex Bligh





------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|

Re: Thread confusion on OS-X

Alex Bligh
In reply to this post by John Reiser

> On 17 Jun 2016, at 18:37, John Reiser <[hidden email]> wrote:
>
> Try "make clean" first, particularly if this is not the first 'make'.
> The file generated by 'make' which records the header dependencies
> says that mach_vmUser.c #includes mach_vm.defs.  Look for those filenames
> (find /usr/include -iname mach_vmUser.c -o -iname mach_vm.defs")
> to see if they really exist on some other path(s).  Search for those
> filenames on the web, and look for the pathnames in which they reside.
> Reconcile.  Beware that the default HFS+ has case-independent filenames,
> but case-dependent is an option, and case matters on most non-HFS+ filesystems.

Thanks

I had migrated between Macs and somehow it needed 'xcode-select --install'
again, but weirdly only valgrind was broken.

--
Alex Bligh





------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users