From: Marian K. <mar...@ci...> - 2012-06-25 12:38:29
|
Hello Julian, this hack works excellently, and we've run the application under valgrind successfully on Meizu M9 with Android 4. Then, we tried the same on Motorola Razr with Android 2.3.6, but our attempt to run the application under valgrind failed very early. The following message from logcat seems to distinguish those two cases: dalvikvm: could not disable core file generation for pid 8403: Operation not permitted This does not happen on the other device. It seems that some access permissions are insufficient, but I do not even know where to start. I remember that in your README that describes Valgrind usage on Android you mention insufficient privileges for temp directory. This may be similar. Or it may be case of a difference between Android 2.3 and Android 4.0. Do you have any ideas? Best regards Marian P.S.: In 10 days, we're going to have dedicated pandaboard for these experiments, but so far we must limit ourselves to the normal devices. Dne 25.6.2012 11:03, Julian Seward napsal(a): >> Is there any eay how to 'iterate' over all the current threads (let us >> say that we know their thread id's - we do) and print their stack >> traces? That would help us a lot. > One hack that might be worth a try is this. Your SIGTERM is sent by > the kernel first to Valgrind, which then sends it onwards to the app. > It's easier if you deal with it on the Valgrind side, before it gets > forwarded to the app. > > In coregrind/m_signals.c there is async_signalhandler(). In there, > add a test for sigNo==15 (sigterm) and if so make a call to > VG_(show_sched_status), which is in m_libcassert.c. This shows the > stacks for all threads, which is what you want. > > J |