Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MACH-CMD(3)		   Library Functions Manual		   MACH-CMD(3)

       attachargs,  attachcore,	 attachdynamic,	attachproc, proctextfile - de-
       bugging processes and core files

       #include	<u.h>
       #include	<libc.h>
       #include	<mach.h>

       int    attachcore(Fhdr *hdr)

       int    attachproc(int pid)

       int    attachdynamic(void)

       char*  proctextfile(int pid)

       int    attachargs(int argc, char	**argv,	int omode)

       extern Fhdr* symhdr;
       extern char* symfil;
       extern Map*  symmap;
       extern Fhdr* fhdrlist;
       extern Fhdr* corhdr;
       extern char* corfil;
       extern Map*  cormap;
       extern int   corpid;
       extern Regs* correg;

       These routines provide access to	the objects a typical debugger manipu-
       lates:  an executable binary, some number of shared libraries, a	memory
       image in	the form of a core dump	or active process, and a register set.

       The maintained state is:

       symhdr The file header for the main binary.

       symfil The file name of the main	binary.

       symmap The memory map of	the main binary.

	      A	linked list (via the fields) of all  currently  open
	      headers  (see  symopen  in  When dynamically linked objects have
	      been attached, they are present in this linked list, and	there-
	      fore  included  in  searches by indexsym,	lookupsym, and findsym

       corhdr The file header for the core dump, if any.

       corfil The file name of the core	dump, if any.

       cormap The memory map of	the core dump or attached process.

       corpid The process id of	the attached process, if any.

       correg The register set of the core dump	or attached process.  If these
	      fields are not valid, they are zeroed.

       Attachcore and attachproc attach	to an opened core file or an executing
       process.	 They set corhdr, corfil, cormap, corpid, and correg.

       Proctextfile returns the	name of	the main binary	for the	 process  with
       id pid.

       Attachdynamic  requires	that the memory	image already be attached.  It
       reads the dynamic linker's internal run-time data structures  and  then
       opens all the dynamic objects that are currently	loaded.

       Attachargs uses all of these functions while parsing an argument	vector
       as would	be passed to a debugger	like or	It  expects  a	list  of  exe-
       cutable files, core dump	files, or process ids, given in	any order.  If
       extra arguments are given (for example, more than  one  executable,  or
       both  a	core  dump and a process id), they are ignored and diagnostics
       are printed to standard error.  If arguments are	missing	(for  example,
       the  process  id	is given without an executable file), attachargs fills
       them in as best it can.


       The interface needs to be changed to  support  multiple	threads,  each
       with its	own register set.



Want to link to this manual page? Use this URL:

home | help