Я пытаюсь профилировать приложение C ++, которое я не написал, чтобы понять, где находятся основные точки вычислений. Я не эксперт по C ++ и, тем более, эксперт по отладке и профилированию C ++. Я полагаю, что у меня (общая?) Проблема с динамическими библиотеками.
Я компилирую ссылку на Google CPU Profiler , используя (OS X, G ++):
env LIBS=-lprofiler ./configure
make
make install
Затем я запускаю профиль установленного приложения (jags) с:
env CPUPROFILE=./jags.prof /usr/local/bin/jags regression.cmd
pprof /usr/local/bin/jags jags.prof
К сожалению, я получаю сообщение об ошибке:
pprof /usr/local/bin/jags jags.prof Can't exec "objdump":
No such file or directory at /usr/local/bin/pprof line 2833.
objdump /System/Library/Frameworks/Accelerate.framework/Versions/A/
Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib: No such file or directory
Программа динамически связывается с libLAPACK.dylib. Так что prof
, похоже, не понимает этого (?). Я думал о попытке статически связать, но документы, связанные с программой, говорят, что невозможно статически связать в LAPACK или BLAS (две обязательные библиотеки).
Есть ли способ заставить профилировщик игнорировать libLAPACK? Я в порядке, если он не сэмплирует в libLAPACK. Или как мне заставить профилирование работать?