4

これを少し変更して、ARM 用のValgrindをコンパイルしました。

指定された方法で電話にインストールした後、次のエラーが発生します。

# /data/local/Inst/bin/valgrind
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied

詳しく調べると、何をしようとしているのかを見つけることができます。

# /data/local/Inst/bin/valgrind -d -v                         
--25068:1:debuglog DebugLog system started by Stage 1, level 1 logging requested
--25068:1:launcher no tool requested, defaulting to 'memcheck'
--25068:1:launcher no client specified, defaulting platform to 'arm-linux'
--25068:1:launcher launching /data/local/Inst/lib/valgrind/memcheck-arm-linux
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied

ただし、実行可能ファイルはそこにあり、適切な権限があります。

# ls -l /data/local/Inst/lib/valgrind/memcheck-arm-linux
-rwxrwxrwx root     root      9261240 2013-10-28 17:00 memcheck-arm-linux

さらに、それを実行しようとしても問題が発生しないため、動的リンクの問題も解消されます。

/data/local/Inst/lib/valgrind/memcheck-arm-linux              
valgrind: You cannot run '/data/local/Inst/lib/valgrind/memcheck-arm-linux' directly.
valgrind: You should use $prefix/bin/valgrind.

この時点で、私はほとんどアイデアがありません。どんな助けも大歓迎です。

私はこの同様の投稿を認識していますが、(「-d」を使用した出力に基づいて) 接頭辞が正しいと確信しています。

潜在的な手がかり:これは以前はいくつかの "ROM" で機能していましたが、残念ながら、この現在のものは以前に機能していたものとまったく同じで、まったく同じ Valgrind ビルドを使用しています。

マイナーな変更:ビルドは 64 ビット システムで行われたため、必要に応じてツールチェーン パスに _64 が追加されました。スクリプト全体を投稿できますが、無関係である必要があります。有名な最後の言葉、潜在的に。

4

3 に答える 3

4

I recently ran into the exact same problem. On my device /data/local/Inst and all of its content is owned by a user named "shell". Strange enough, when I try to execute valgrind with the root user, I get the above-mentioned error, but as soon as I log in with the unprivileged user, I can run valgrind without any issues.

From the information you posted, I take, that you installed valgrind as the root user, and I assume you also executed it as root.

So here are the steps that got it working for me:

  • /data/local/Inst is owned by an unprivileged user
  • Install valgrind with the same unprivileged user
  • Again, execute valgrind with the same user

Hope this helps.

于 2014-06-05T13:58:15.300 に答える
1

通常、これは一部のファイル (lib ファイルまたは構成ファイル) にアクセス許可がないことを示しています。最も可能性が高いのは、Valgrind を root でインストールする場合で、umask によって他のユーザーの rx が除外される可能性があります。他のユーザーに rx パーミッションを追加することで、これを簡単に解決できます。

find /usr/local -name "*valgrind*" -exec chmod o+rxt {} \;

于 2016-05-18T02:05:21.120 に答える
-1

Android で Valgrind を使用する場合、少なくとも 3 つの方法で問題を解決できます。(最初に Android スマートフォンをルート化する必要があります。)

パソコンで

cmd
adb shell
$su
#cp /data/local/Inst/bin/valgrind /system/bin/

注: chmod を忘れないでください。たとえばchmod 777 valgrind

Android スマートフォンで

アプリ「Root Explorer」をインストールします。アプリでvalgrind をコピーし/system/bin/ます。

シェルスクリプトを書く

これは例です: Valgrind で Java Android プログラムを実行できません

中国のコメント: 我本人曾曾不止一次英语考试不及格。写英文回贴真的很不舒服。 </p>

于 2014-08-08T06:30:07.087 に答える