2012-08-10 145 views
1

我正在爲跟蹤庫啓動Mac啓動器 - 通過將庫添加到DYLD_INSERT_LIBRARIES(Mac等效於LD_PRELOAD)工作。隨着更多進程的產生,DYLD_INSERT_LIBRARIES變量將被跟蹤庫傳播。

問題是我需要將32位版本的跟蹤庫用於32位Tracee進程,而對於64位Tracee進程需要使用64位版本。在我的Linux啓動器中,這是通過使用LD_PRELOAD中的${LIB} - 動態加載器(ld.so)在加載進程時用「正確的東西」替換它來實現的。

在Mac上是否有相當於ld.so${LIB}變量dyld?當我瀏覽手冊頁(https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/dyld.1.html)時,我無法立即看到一個,但我可能只是讀錯了。如果沒有,請問還有另一種達到同樣效果的方法嗎?

回答

2

我想你想要的是將你插入的庫編譯爲一個胖二進制文件(例如,在同一個二進制文件中的多個體繫結構)。這應該允許單個值DYLD_INSERT_LIBRARIES適用於各種體系結構的子進程。

+0

謝謝,這就是我最後做的,如果我記得正確。 – 2013-02-27 09:45:27

相關問題