问题
I'm trying to install valgrind on my android device, but when i try to execute adb push Inst /
i get an error
C:\VmFiles>adb push Inst /
push: Inst/data/local/Inst/bin/vgdb -> /data/local/Inst/bin/vgdb
failed to copy 'Inst/data/local/Inst/bin/vgdb' to '/data/local/Inst/bin/vgdb': N
o such file or directory
Ofc file vgdb exists in this directory
C:\VmFiles>ls Inst/data/local/Inst/bin
callgrind_annotate cg_diff valgrind vgdb
callgrind_control cg_merge valgrind-di-server
cg_annotate ms_print valgrind-listener
回答1:
after some observation i found there is no directory Inst/bin in local so first you need to make a directory in /data/local/Inst/bin
and for that you need root access to your device because you cant access /data/ directory without root permissions then do following steps.
first go to directory where vgdb is placed then execute
adb push vgdb /data/local/Inst/bin/
回答2:
Syntax for adb push
:
adb push <PATH_OF_FILE_ON_HOST> <PATH_OF_FILE_ON_DEVICE>`
Since you are trying to push from Inst/data/local/Inst/bin/
path. Use the below command with absolute path.
adb push /full/path/to/Inst/data/local/Inst/bin/ /path/on/device/test_folder/
This should push all (both files and directory) content of the directory Inst/data/local/Inst/bin/
to /path/on/device/test_folder/
Make sure /path/on/device/test_folder/
exist, or run below command before hand.
adb shell mkdir /path/on/device/test_folder/
Use adb shell ls /path/on/device/test_folder/
to list, if your files are transferred to the device.
Also make sure you have permission to write to /path/on/device/test_folder
Note: You will usually have permission to write to /sdcard/
but again will require root permission to assign execute permission (chmod
) to the transferred binary.
In this case, may need to root the device.
来源:https://stackoverflow.com/questions/25525614/valgrind-adb-push-failed-to-copy-vgdb