2021/4/20

Snapdragon Profiler : running in ubuntu 18.04 (docker 16.04)

大神說app有問題就開 snapdragon profile 來看...
所以 follow instruction .. 安裝 mono 之後,啟動 snapdragonprofiler(2021.1)...
然後就出問題...
...
(SnapdragonProfiler:27412): Gtk-WARNING **: 17:08:08.793: Unable to locate theme engine in module_path: "xamarin",

=================================================================
	Native Crash Reporting
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
	Native stacktrace:
=================================================================
	0x559c168b1139 - mono : 
	0x559c168b14b9 - mono : 
	0x559c1685d7af - mono : 
	0x559c168aab13 - mono : 
	0x7f9fc5bd2b30 - /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 : 
	0x7f9fc5bd3fa5 - /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 : g_build_filename
	0x7f9fc7b34b0a - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : 
	0x7f9fc7b37668 - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : gtk_rc_find_pixmap_in_path
	0x7f9fc7b39b86 - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : 
	0x7f9fc7b39fb5 - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : 
	0x7f9fc7b3a2d3 - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : 
	0x7f9fc7b3a395 - /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 : gtk_rc_parse
	0x406d79d3 - Unknown

=================================================================
	Telemetry Dumper:
=================================================================
Pkilling 0x140324309710592x from 0x140324382138176x
Could not exec mono-hang-watchdog, expected on path '/etc/../bin/mono-hang-watchdog' (errno 2)
Entering thread summarizer pause from 0x140324382138176x
Finished thread summarizer pause from 0x140324382138176x.
Failed to create breadcrumb file (null)/crash_hash_0x239c436ad

...
論壇上搜尋,有一些人有問題,一樣都是在 18.04 或 20.04/10...
所以,先到 tool and.. 去下載舊版.. 一樣。
所以,應該是 OS 版本的問題。

只好用 docker 來 run..
需要 X.. 跟 usb pass-through
以前還是白痴的時候試過了。
command 就照以前的 'final' 部份就行。
docker run -it --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev:/dev -v ~/ddata:/data  -v /sys:/sys ubuntu:16.04
run 起來之後,先處理比較簡單的 usb-passthrough 部份。
因為 啟動時已經把 所有 hardware sys 都 mapping 近來了。
所以只需要安裝啟動 udev...
sudo apt-get install udev
sudo /lib/systemd/systemd-udevd &
sudo udevadm trigger
這樣做完,插入 usb--phone,grant phone debug permission,之後就可以用 dmesg 看是不是有出現...

然後是比較麻煩的 X..
一樣,啟動時,已經將 local 的 .X11-unit 和 DISPLAY 變數 mapping 近來。
因為這個 X11 有 user permission 限制,所以在 docker container 中要件一個跟 host user 一樣的 uid/gid user..ref.
useradd -m -s /bin/bash -u 1000 charles-chang
這樣做完,可以安裝 x11-apps 測試一下,先 su charles-chang (只su,環境不要切,不然 DISPLAY 變數也要export)
然後 run xeyes

之後的動作就是 follow Snapdragon-profiler 裡的 README,裝完所有 package (mono 後段 llvm check 會花比較九)。
./run_sdp.sh
就成功 啟動了,選擇 connect to device..,他會安裝一些 package 到 phone (花一點時間),之後就成功啟動...



這一篇 是 Qualcomm 的 說明:Identify Application Bottlenecks

沒有留言:

張貼留言