Determinando programaticamente quais módulos são carregados em outro processo? (OS X)

O que estou tentando fazer é bastante direto, só não sei exatamente como fazê-lo.

Especificamente, só quero obter uma lista de módulos (bibliotecas compartilhadas / dinâmicas) que são carregados em outro processo. Além de obter o endereço inicial de onde esse módulo está no processo especificado.

É muito simples obter essas informações com o GDB. Você simplesmente se conecta ao processo e digita "informações compartilhadas". Esse é o tipo exato de informação que eu gostaria de obter. Tal como:

Num Basename
Tipo Endereço Motivo | | Fonte | |
| | | | | |
1 Adium
- 0x1000 exec Y Y /Applications/Adium.app/Contents/MacOS/Adium (deslocamento 0x0) 2 dyld
- 0x8fe00000 dyld AA / usr / lib / dyld em 0x8fe00000 (deslocamento 0x0) com o prefixo "__dyld_" 3 WebCore F 0x95b6a000 dyld YY /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework A / WebCore em 0x95b6a000 (deslocamento 0x95b6a000)

Alguém sabe como fazer isso programaticamente? Obviamente, onde o carregamento dos módulos é dinâmico, é necessário determinar onde ele está localizado.

questionAnswers(4)

yourAnswerToTheQuestion