Alex Rivera | Logout

Getting a list of used libraries by a running process on Mac OS

Asked 2010-02-02T14:35:51.633
41

I need to find out what libraries a process has loaded and might use throughout its lifetime. Is this possible and how. Or better yet, I have a library name and I need to find out what processes are using it, is this possible.

On the same note, is it possible to get notified somehow when a unix process is launched and when it is quit. They would not be child processes of my process, i just need to know globally.

Update:

I think I didn't give enough information. I was looking for a way to find the loaded libraries a process has and I need to do it in C/C++.

Edit
Report

2 Answers

10

if lsof is not installed, you can simply cat /proc/$pid/maps

you can also check on disk executables with ldd to see what libs they will open (but that doesn't show libraries opened dynamically using dlopen()).

As for monitoring new processes, you can possibly add an inotify watch on /proc to monitor the creation/destruction of new numeric only directories.

Update: inotify on /proc doesn't work, but there are apparently alternatives, see this thread

answered 2010-02-02T14:42:07.483
5

you can use lsof. See the man page for more info. Another tool is strace. To see if a process is launched, you can use ps -ef piped to grep, or tools like pgrep as well. check for the return value to know if its quit or not.

answered 2010-02-02T14:39:40.157

Your Answer