gperftools cpuProfiler не может видеть символы при профилировании файла, созданного устройством ARM и

Я хочу профилировать приложение C ++, которое работает на устройстве ARM.
Я запустил свое приложение и профилировал его с помощью ProfilerStart («googleProfBL.prof»), поэтому файл создается.
Когда я открываю файл с устройства ARM на моем локальном компьютере, я получаю это:

./pprof --text --add_lib=libraryIwanttoDebug.so BinaryThatLoadsThatLibrary googleProfBL.prof
Using local file /home/genius/PresControler/src-build-target/deploy/NavStartup.
Using local file ../traces/googleProfBL.prof.
Warning: address ffffffffffffffff is longer than address length 8
Warning: address ffffffffffffffff is longer than address length 8
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.
Total: 5347 samples
258 4.8% 4.8% 258 4.8% 0x76d4c276
144 2.7% 7.5% 144 2.7% 0x76da2cc4
126 2.4% 9.9% 126 2.4% 0x5d0f8284
114 2.1% 12.0% 114 2.1% 0x76d27386
64 1.2% 13.2% 64 1.2% 0x76dba2dc
53 1.0% 14.2% 53 1.0% 0x76dba1f4
...

Библиотека так скомпилирована в режиме отладки (не удалена), я не знаю, почему я не получаю символы.

Я попробовал это:


./pprof --text --add_lib=aFileOfTheLibrary.o BinaryThatLoadsThatLibrary googleProfBL.prof
Looks like I got a couple of symbols.
Using local file /home/genius/PresControler/src-build-target/deploy/NavStartup.
Using local file ../traces/googleProfBL.prof.
Warning: address ffffffffffffffff is longer than address length 8
Warning: address ffffffffffffffff is longer than address length 8
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.
Total: 5347 samples
258 4.8% 4.8% 258 4.8% 0x76d4c276
144 2.7% 7.5% 144 2.7% 0x76da2cc4
126 2.4% 9.9% 126 2.4% 0x5d0f8284
114 2.1% 12.0% 114 2.1% 0x76d27386
64 1.2% 13.2% 64 1.2% 0x76dba2dc
53 1.0% 14.2% 53 1.0% 0x76dba1f4
50 0.9% 15.1% 50 0.9% 0x76dbf1bc
34 0.6% 15.8% 34 0.6% 0x72eae1b4
30 0.6% 16.3% 30 0.6% 0x76d8a32a
30 0.6% 16.9% 30 0.6% 0x76d8e2c0
..
0 0.0% 100.0% 7 0.1% std::forward_as_tuple <- I couldn't see that before!!!

Я попытался сделать —add_lib для каждого .o, но у меня больше нет символов. Почему я не получаю символы, это имеет какое-то отношение, потому что я проверяю результаты с помощью Intel и получаю их с помощью ARM ?? Как я мог это исправить? любая помощь???
Спасибо!!!

2

Решение

Теперь я получил гораздо больше информации!
Я жил своим приложением, нажимая Ctrl + C, поэтому файл стал как-то поврежден …
Я сделал тест, вызывающий ProfilerStop (), прежде чем нажимать ctrl + c, и он сработал (конечно, используя также —lib_prefix, где находятся .so).
Я все еще получил эти предупреждения:

Warning: address ffffffffffffffff is longer than address length 8
Warning: address ffffffffffffffff is longer than address length 8
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.
Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475.

Если кто-то знает, почему я их получаю (я полагаю, это потому, что я отлаживаю код, сгенерированный другим устройством), пожалуйста, дайте мне знать.

1

Другие решения


По вопросам рекламы [email protected]