BUG: callgrind never logs anything when profiling

No matter if launched manually from cmdline with valgrind --tool=callgrind harbour-appname or via the option in qtcreator under Analyze->“Valgrind function profiler”, the callgrind.out. file always stays empty.

Valgrind output:

18:50:06: Profiling /usr/bin/harbour-contrac
18:50:06: valgrind --smc-check=stack --tool=callgrind /usr/bin/harbour-contrac
==16874== Callgrind, a call-graph generating cache profiler
==16874== Copyright (C) 2002-2017, and GNU GPL'd, by Josef Weidendorfer et al.
==16874== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==16874== Command: /usr/bin/harbour-contrac
==16874== 
==16874== For interactive control, run 'callgrind_control -h'.
disInstr(thumb): unhandl
ed i
nstruction: 0xEC51 0x0F1E
==16874== valgrind: Unrecognised instruction at address 0x48ded67.
==16874==    at 0x48DED66: ??? (in /usr/lib/libcrypto.so.1.1.1l+git1)
==16874== Your program just tried to execute an instruction that Valgrind
==16874== did not recognise.  There are two possible reasons for this.
==16874== 1. Your program has a bug and erroneously jumped to a non-code
==16874==    location.  If you are running Memcheck and you just saw a
==16874==    warning about a bad jump, it's probably your program's fault.
==16874== 2. The instruction is legitimate but Valgrind doesn't handle it,
==16874==    i.e. it's Valgrind's fault.  If you think this is the case or
==16874==    you are not sure, please let us know and we'll try to fix it.
==16874== Either way, Valgrind will now raise a SIGILL signal which will
==16874== probably kill your program.
[D] unknown:0 - QML debugging is enabled. Only use this in a safe environment.
[D] unknown:0 - Contrac version 0.7.7
--16874-- WARNING: unhandled arm-linux syscall: 381
--16874-- You may be able to write your own handler.
--16874-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--16874-- Nevertheless we consider this a bug.  Please report
--16874-- it at http://valgrind.org/support/bug_reports.html.

I wonder if this is caused by OpenSSL arm capability probe. You could try disabling it by setting environment variable ‘OPENSSL_armcap’ to value ‘1’. And please report whether that helps or not.

1 Like