¿Determinar programáticamente qué módulos se cargan en otro proceso? (OS X)

Lo que estoy tratando de hacer es bastante sencillo, no estoy seguro de cómo hacerlo.

Específicamente, solo quiero obtener una lista de módulos (bibliotecas compartidas / dinámicas) que se cargan en otro proceso. Además de obtener la dirección inicial de dónde está ese módulo en el proceso dado.

Es muy sencillo obtener esta información con GDB. Simplemente conéctese al proceso y escriba "información compartida". Ese es el tipo exacto de información que me gustaría obtener. Como:

Num Basename
Tipo Dirección Motivo | El | Fuente | El |
El | El | El | El | El | El |
1 adium
- 0x1000 exec Y Y / Aplicaciones / Adium.app/Contents/MacOS/Adium (offset 0x0) 2 dyld
- 0x8fe00000 dyld YY / usr / lib / dyld en 0x8fe00000 (offset 0x0) con el prefijo "__dyld_" 3 WebCore F 0x95b6a000 dyld YY /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.fra. A / WebCore en 0x95b6a000 (desplazamiento 0x95b6a000)

¿Alguien sabe cómo hacer esto mediante programación? Obviamente, la carga de los módulos es dinámica, por lo que necesito determinar dónde se encuentra.

Respuestas a la pregunta(4)

Su respuesta a la pregunta