🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #49853

tracing parallel threads

#49853
From: egbert
Date: Thu, 16 Dec 1993 13:49
66 lines
3597 bytes
Perhaps you are the right person to help me. 
(If I posted in the wrong newsgroup and you know a more suitable one please
send me a mail.) 

NEED:
	some function-call graph tracing facilities for GNU-C (especially if
	one runs several processes in parallel, and is using the pvm-tool for
	using a heterogeneous workstation net as a virtual parallel machine,
	we use DEC alphas, SUN SPARCstation, sun3, DECstation 5000/3100)
	The main problem arises from the parallelism and that's why I don't
	intend to use the already implemented profiling feature.

MOTIVATION:
	need some tracing methods at the function level for visualizing the
	run-time behavior and evaluating the performance of a program that
	spawns several parallel threads and uses message passing for
	communication/synchronisation which is supplied by the pvm layer

GENERAL IDEA:
  *	add a call to an initialisation routine at the program start,
		that is supposed to
	  *	start a background process, handling the buffering and 
	  *	add a clean-up function in the exit()-queue
  *	while parsing:
		generate a unique ID for each function that will be supplied
	  *	to a trace-IN function at the function entry (or right before
		a function call)
		[perhaps I can use profile feature]
	  *	and to a trace-OUT function before the function exit and
		all return statements
  *	while running:
		a background process started by the initialisation routine
		collects the trace data in buffers and writes them out
		on disc, according to some specified buffering strategy.

MY PROBLEMS:
  *	don't know if there exists such a feature already or something I
	could use as a pool of ideas/methods  
  *	don't know how to use the target makro feature for generating the
	function call (FUNCTION_PROLOGUE) and function return
	(FUNCTION_EPILOGUE) (perhaps the implicite end-of-function return and 
	the explicite return-statement might be distinguished and I will have
	to consider this in my patch)
  *	perhaps I can use some mechanisms/methods used for the debugging or
	profiling data generation but I don't know anything about those
	either 
  
HOW YOU CAN HELP ME:
  *	documentation I can get from an ftp-site (I have the 'gcc.info' file
	only)
  *	documented (problem - idea - solution) examples that use some of the
	features I mentioned above
  *	e-mail addresses where I could ask for some papers on that topic

ABOUT MY PERSON:
	I'm a graduate student working on my diploma paper which is about
	developing a general concept for profiling the behavior of programs
	running in parallel.
	I've implemented the tracing features and some buffer handling
	mechanisms in the LSC-C compiler already.

my e-mail address:

	hess@sunshine.informatik.uni-wuerzburg.de

thanks in advance, Egbert
Technical Details
Message-ID: <2epp1f$16j@winx03.informatik.uni-wuerzburg.de>
Path: arc1-ca.pugleaf.net!gmd.de!newsserver.jvnc.net!yale.edu!spool.mu.edu!agate!doc.ic.ac.uk!uknet!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!zib-berlin.de!fauern!winx03!dec5!hess

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 11318c,9cce8d3c4164a420,start
X-Google-Attributes: gid11318c,public
X-Google-ArrivalTime: 1993-12-16 07:09:34 PST
Path: arc1-ca.pugleaf.net!gmd.de!newsserver.jvnc.net!yale.edu!spool.mu.edu!agate!doc.ic.ac.uk!uknet!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!zib-berlin.de!fauern!winx03!dec5!hess
From: hess@informatik.uni-wuerzburg.de (egbert)
Newsgroups: gnu.gcc.help
Subject: tracing parallel threads
Date: 16 Dec 1993 13:49:35 GMT
Organization: University of Wuerzburg, Germany
Lines: 68
Message-ID: <2epp1f$16j@winx03.informatik.uni-wuerzburg.de>
NNTP-Posting-Host: winx27
Summary: would like to extend the compiler to supply a trace feature
Keywords: parallelism, profiling, extension
X-Newsreader: TIN [version 1.2 PL2]