dyninst.git
19 years ago This commit allows us to force the relocation of functions being
gurari [Wed, 11 Jul 2001 21:19:52 +0000 (21:19 +0000)]
  This commit allows us to force the relocation of functions being
  instrumented in the dyninst test suite with the -relocate flag. I added a
  forceRelocation_NP variable to the BPatch class and it is accessed and set
  by the functions hasForcedRelocation_NP() and setForcedRelocation_NP(bool).
  The method pd_Function method findInstPoints() checks if the
  forceRelocation_NP variable has been set to true and if it has, then it
  sets its relocatable_ which leads to the function's being relocated when
  it is instrumented.

19 years agoSmall fixes related to AddressHandle construction in x86 platform.
tikir [Wed, 11 Jul 2001 21:06:21 +0000 (21:06 +0000)]
Small fixes related to AddressHandle construction in x86 platform.

19 years agoCorrected handling of local variables in Fortran77 on IBM.
hollings [Wed, 11 Jul 2001 20:15:03 +0000 (20:15 +0000)]
Corrected handling of local variables in Fortran77 on IBM.

19 years agoThis commit cleans up the findInstPoints function for sparc. Previously
gurari [Tue, 10 Jul 2001 20:37:07 +0000 (20:37 +0000)]
This commit cleans up the findInstPoints function for sparc. Previously
there were two versions of the function, an initial default version which
called the second version in the case where the function being examined for
instPoints needed to be relocated to be instrumented. This had been done
because instPoints were created differently for functions that needed
relocation. There is now only one version of findInstPoints and it can
handle both normal functions and functions that need to be relocated.

19 years agoHello all:
chadd [Mon, 9 Jul 2001 19:34:48 +0000 (19:34 +0000)]
Hello all:

This commit makes DyninstAPI functional on Win2k and
WinNT 4.0.

interesting bits:

: The compiler now takes the -MD option
which produces a multithreaded dll.  This is done
to ensure memory allocatd by the dyninstAPI.dll is
deallocated correctly by the mutator.

: There is a description in pdwinnt.C detailing the differences
between the NT4.0 debug api and the Win2k debug api,
and how the code has changed to handle them.

: The runtime dll libdyninstAPI_RT.dll now uses DLLMain()
to initialize the necessary data, which saves a bit
on the startup instrumentation, this is detailed in
pdwinnt.C as well.

enjoy.
chadd

19 years agodisable the "snap to grid" feature of the component times since it is a
schendel [Fri, 6 Jul 2001 21:34:29 +0000 (21:34 +0000)]
disable the "snap to grid" feature of the component times since it is a
  source of an assert in certain situations in the aggregation code

19 years agorollback the aggregation code to before my Jun 23 commit, due to asserts
schendel [Fri, 6 Jul 2001 18:50:32 +0000 (18:50 +0000)]
rollback the aggregation code to before my Jun 23 commit, due to asserts
with MPI programs

19 years agofixed the memory leak occurred in win2000 during addresshandle contsruction
tikir [Fri, 6 Jul 2001 18:10:41 +0000 (18:10 +0000)]
fixed the memory leak occurred in win2000 during addresshandle contsruction

19 years agoFix for arbitrary inst points in case of relocation
tikir [Thu, 5 Jul 2001 16:53:21 +0000 (16:53 +0000)]
Fix for arbitrary inst points in case of relocation
fix for vector += for alpha
fix for findFunctionIn
fix for isLibTag

19 years agoWith this commit we are now able to relocate x86 functions that contain a
gurari [Tue, 3 Jul 2001 21:40:06 +0000 (21:40 +0000)]
With this commit we are now able to relocate x86 functions that contain a
call to the next address. The call serves the purpose of placing the
address of the next instruction on the stack. Instead of a call, the
relocated function pushes the address of the next instruction (in the
original function) on the stack.

19 years agoThis commit allows paradyn to defer instrumenting a function to a later
gurari [Mon, 2 Jul 2001 22:43:22 +0000 (22:43 +0000)]
This commit allows paradyn to defer instrumenting a function to a later
time. This occurs when a function needs to be relocated to be
instrumented, but the relocation (and subsequent instrumentation) cannot
be done because the application is executing inside the function. Paradynd
now keeps a vector of defInst (deferred instrumentation) objects (they
indicate the metric and focus that could not be instrumented) and
periodically tries to insert the instrumentation. After an arbitrary
number of tries, which I set it up to be a thousand, if the function has
not been relocated, instrumentation is instead inserted using traps. In
order to do deferred instrumentation I added a boolean to the
addInstFunc() and findAndInstallBaseTramp() functions to indicate whether
the instrumentation had to be deferred. findAndInstallBaseTramp() is a
platform dependent function.

19 years agofix mistake in initializing sample rate, now is at .2 seconds again
schendel [Sat, 23 Jun 2001 19:07:05 +0000 (19:07 +0000)]
fix mistake in initializing sample rate, now is at .2 seconds again

19 years agoupdated DEPENDS file since dependencies changed
schendel [Wed, 20 Jun 2001 20:44:35 +0000 (20:44 +0000)]
updated DEPENDS file since dependencies changed

19 years agolink in advapi32.lib to accommodate code in pdutil that determines cpu
schendel [Wed, 20 Jun 2001 20:44:04 +0000 (20:44 +0000)]
link in advapi32.lib to accommodate code in pdutil that determines cpu
cycle rate via the windows registry

19 years agopdutil now has histogram code that uses the new types, so include in
schendel [Wed, 20 Jun 2001 20:43:35 +0000 (20:43 +0000)]
pdutil now has histogram code that uses the new types, so include in
histogram in pdutil

19 years agoUse default initialization for time and sample value classes. Changed to
schendel [Wed, 20 Jun 2001 20:43:15 +0000 (20:43 +0000)]
Use default initialization for time and sample value classes.  Changed to
handle member variables that might be uninitialized.

19 years agoAdded a commented out debug flag for convenient use.
schendel [Wed, 20 Jun 2001 20:42:39 +0000 (20:42 +0000)]
Added a commented out debug flag for convenient use.

19 years agoFile no longer needed.
schendel [Wed, 20 Jun 2001 20:42:14 +0000 (20:42 +0000)]
File no longer needed.

19 years agoUse new NaN representation.
schendel [Wed, 20 Jun 2001 20:41:52 +0000 (20:41 +0000)]
Use new NaN representation.

19 years agoNew pdRate class used in PC.
schendel [Wed, 20 Jun 2001 20:41:25 +0000 (20:41 +0000)]
New pdRate class used in PC.

19 years agoRemove histType (Interval vs. Bucket) attribute of histogram. Update to use
schendel [Wed, 20 Jun 2001 20:41:00 +0000 (20:41 +0000)]
Remove histType (Interval vs. Bucket) attribute of histogram.  Update to use
new time and sample value types (ie. timeStamp, relTimeStamp, timeLength,
pdSample, pdRate).  Use new NaN representation.  Change so bucket sample
values are no longer normalized, but unnormalized values.  Use new class
relTimeStamp internally in some calculations.  Remove smoothing code in
histogram since unused and done in visis.

19 years agoDon't use makenan.C anymore. Link in pdRate.C.
schendel [Wed, 20 Jun 2001 20:40:20 +0000 (20:40 +0000)]
Don't use makenan.C anymore.  Link in pdRate.C.

19 years agoAdd selector and mutator methods to wrap the global current and internal
schendel [Wed, 20 Jun 2001 20:39:54 +0000 (20:39 +0000)]
Add selector and mutator methods to wrap the global current and internal
  metric sampling rate variables.  Use pdutil instead of pdutilOld.  Update
  to use new time and sample value types (ie. timeStamp, relTimeStamp,
  timeLength, pdSample, pdRate).

19 years agoUse default initialization for time and sample value classes.
schendel [Wed, 20 Jun 2001 20:39:22 +0000 (20:39 +0000)]
Use default initialization for time and sample value classes.

19 years agoFixed warning with casting away of const. Fix warnings with floating point
schendel [Wed, 20 Jun 2001 20:39:02 +0000 (20:39 +0000)]
Fixed warning with casting away of const.  Fix warnings with floating point
  literals.

19 years agoFixed warning with casting away of const. Use pdutil instead of pdutilOld.
schendel [Wed, 20 Jun 2001 20:38:34 +0000 (20:38 +0000)]
Fixed warning with casting away of const.  Use pdutil instead of pdutilOld.
  Update to use new time and sample value types (ie. timeStamp, relTimeStamp,
  timeLength, pdSample, pdRate).  Move some private support funcs to public.

19 years agoFix warning.
schendel [Wed, 20 Jun 2001 20:38:03 +0000 (20:38 +0000)]
Fix warning.

19 years agoChange order of including header files to fix dependency error.
schendel [Wed, 20 Jun 2001 20:37:34 +0000 (20:37 +0000)]
Change order of including header files to fix dependency error.

19 years agoChanged Interval declared in pdutil to PCInterval declared in PC. Use
schendel [Wed, 20 Jun 2001 20:37:05 +0000 (20:37 +0000)]
Changed Interval declared in pdutil to PCInterval declared in PC.  Use
  pdutil instead of pdutilOld.  Update to use new time and sample value types
  (ie. timeStamp, relTimeStamp, timeLength, pdSample, pdRate).

19 years agoFix warnings with floating point literals. Use pdutil instead of
schendel [Wed, 20 Jun 2001 20:36:45 +0000 (20:36 +0000)]
Fix warnings with floating point literals.  Use pdutil instead of
  pdutilOld.  Update to use new time and sample value types (ie. timeStamp,
  relTimeStamp, timeLength, pdSample, pdRate).

19 years agoUse new NaN representation. Use pdutil instead of pdutilOld. Update to
schendel [Wed, 20 Jun 2001 20:36:20 +0000 (20:36 +0000)]
Use new NaN representation.  Use pdutil instead of pdutilOld.  Update to
  use new time and sample value types (ie. timeStamp, relTimeStamp,
  timeLength, pdSample, pdRate).

19 years agoChange phase start time interfaces. Use pdutil instead of pdutilOld.
schendel [Wed, 20 Jun 2001 20:35:54 +0000 (20:35 +0000)]
Change phase start time interfaces.  Use pdutil instead of pdutilOld.
  Update to use new time and sample value types (ie. timeStamp, relTimeStamp,
  timeLength, pdSample, pdRate).

19 years agoFixed warning with casting away of const. Added method to determine bucket
schendel [Wed, 20 Jun 2001 20:35:23 +0000 (20:35 +0000)]
Fixed warning with casting away of const.  Added method to determine bucket
  width from metricInstance.  Use pdutil instead of pdutilOld.  Update to use
  new time and sample value types (ie. timeStamp, relTimeStamp, timeLength,
  pdSample, pdRate).  Move some private support funcs to public.

19 years agoOrganized batchSampleDataCallbackFunc. Adjust so aggregating with "date"
schendel [Wed, 20 Jun 2001 20:34:53 +0000 (20:34 +0000)]
Organized batchSampleDataCallbackFunc.  Adjust so aggregating with "date"
  timeStamp's instead of zero based time relative time.  Use pdutil instead
  of pdutilOld.  Update to use new time and sample value types.

19 years agofix warning with casting away of const
schendel [Wed, 20 Jun 2001 20:34:27 +0000 (20:34 +0000)]
fix warning with casting away of const

19 years agoUse pdutil instead of pdutilOld. Update to use new time and sample value
schendel [Wed, 20 Jun 2001 20:33:34 +0000 (20:33 +0000)]
Use pdutil instead of pdutilOld.  Update to use new time and sample value
  types (ie. timeStamp, relTimeStamp, timeLength, pdSample, pdRate).

19 years agono longer use DMtime-<ostype>.C. Link front-end against new pdutil now.
schendel [Wed, 20 Jun 2001 20:29:16 +0000 (20:29 +0000)]
no longer use DMtime-<ostype>.C.  Link front-end against new pdutil now.

19 years agoAdded initialization flag to timeStamp class. Added relTimeStamp class.
schendel [Wed, 20 Jun 2001 20:28:49 +0000 (20:28 +0000)]
Added initialization flag to timeStamp class.  Added relTimeStamp class.
  Fixed some bugs in printing of timeStamp.

19 years agoupdated to use relTimeStamp class and pdRate class.
schendel [Wed, 20 Jun 2001 20:28:24 +0000 (20:28 +0000)]
updated to use relTimeStamp class and pdRate class.

19 years agoUpdated to use relTimeStamp class.
schendel [Wed, 20 Jun 2001 20:27:52 +0000 (20:27 +0000)]
Updated to use relTimeStamp class.

19 years agoAdded initialization flag to timeStamp class. Added relTimeStamp class.
schendel [Wed, 20 Jun 2001 20:27:27 +0000 (20:27 +0000)]
Added initialization flag to timeStamp class.  Added relTimeStamp class.
Added more time class operators

19 years agoFixed #ifdef that prevented compiling on MIPS.
hollings [Tue, 19 Jun 2001 19:17:04 +0000 (19:17 +0000)]
Fixed #ifdef that prevented compiling on MIPS.

19 years agoAdded ifdefs to define += operator only for paradynd not dyninst API
hollings [Fri, 15 Jun 2001 20:48:28 +0000 (20:48 +0000)]
Added ifdefs to define += operator only for paradynd not dyninst API
builds.

19 years agoMore changes to use stl compatible insert methods.
hollings [Fri, 15 Jun 2001 20:47:49 +0000 (20:47 +0000)]
More changes to use stl compatible insert methods.

19 years agofix duplicated line.
hollings [Wed, 13 Jun 2001 19:50:08 +0000 (19:50 +0000)]
fix duplicated line.

19 years agoremove many warnings
schendel [Tue, 12 Jun 2001 19:56:11 +0000 (19:56 +0000)]
remove many warnings

19 years agoadjust header include compiler options when using X to use make.config
schendel [Tue, 12 Jun 2001 19:55:32 +0000 (19:55 +0000)]
adjust header include compiler options when using X to use make.config
settings

19 years agoremoves unneeded Make lines and sets up consistent warning options when
schendel [Tue, 12 Jun 2001 19:52:53 +0000 (19:52 +0000)]
removes unneeded Make lines and sets up consistent warning options when
  compiling

19 years agoremoves unneeded Make lines and sets up consistent warning options when
schendel [Tue, 12 Jun 2001 19:52:35 +0000 (19:52 +0000)]
removes unneeded Make lines and sets up consistent warning options when
compiling

19 years agoremoves warnings when being compiled by C compiler
schendel [Tue, 12 Jun 2001 19:50:26 +0000 (19:50 +0000)]
removes warnings when being compiled by C compiler

19 years agoon Solaris change from linking against the XFree86 X library to Sun's X
schendel [Tue, 12 Jun 2001 19:49:03 +0000 (19:49 +0000)]
on Solaris change from linking against the XFree86 X library to Sun's X
library

19 years agoChanges in this commit fixed a bug in mdl.C. We need to check if
ning [Tue, 12 Jun 2001 19:39:14 +0000 (19:39 +0000)]
Changes in this commit fixed a bug in mdl.C.  We need to check if
computingCost is false before we call cleanup_drn or toDeletePrimitiveMDN
on a metricDefinitionNode.  This is because if computingCost is true,
then the data request node is never added into the data table thus we
should not call cleanup_drn or toDeletePrimitiveMDN to remove the data
request node from the data table.

19 years agoChange to add templates2.C to build
hollings [Tue, 12 Jun 2001 15:43:58 +0000 (15:43 +0000)]
Change to add templates2.C to build

19 years agoChanges to allow using STL vector class rather than home grown one.
hollings [Tue, 12 Jun 2001 15:43:27 +0000 (15:43 +0000)]
Changes to allow using STL vector class rather than home grown one.

19 years agoAdded definitions to be more compatible with STL vector class.
hollings [Tue, 12 Jun 2001 15:42:46 +0000 (15:42 +0000)]
Added definitions to be more compatible with STL vector class.

19 years agoupdated for STL vector.
hollings [Tue, 12 Jun 2001 15:42:19 +0000 (15:42 +0000)]
updated for STL vector.

19 years ago This commit fixes a bug in the rewriting of calls to retl instructions,
gurari [Mon, 11 Jun 2001 15:51:10 +0000 (15:51 +0000)]
  This commit fixes a bug in the rewriting of calls to retl instructions,
  which I accidentally added in my last commit on the subject a few weeks
  ago. The bug is that we set the o7 register with the address of the original
  call instruction + 8, when it should be set to the address of the original
  call instruction.

19 years agoUpdated window size to be show 80x24 characters. Updated text area font
pcroth [Mon, 11 Jun 2001 15:21:51 +0000 (15:21 +0000)]
Updated window size to be show 80x24 characters.  Updated text area font
to be fixed-width font.  Changed specification of fonts and colors to allow
overriding specifications in .Xresources file.

19 years agosubstitute underscores for spaces in COMPILER Macro defined on command line
schendel [Fri, 8 Jun 2001 19:42:46 +0000 (19:42 +0000)]
substitute underscores for spaces in COMPILER Macro defined on command line
when compiling

19 years agoUpdated contents to reflect termWin project files.
pcroth [Wed, 6 Jun 2001 15:21:26 +0000 (15:21 +0000)]
Updated contents to reflect termWin project files.

19 years agoAdded missing .cvsignore file.
pcroth [Wed, 6 Jun 2001 15:20:07 +0000 (15:20 +0000)]
Added missing .cvsignore file.

19 years agoFix coredump problem (using an ininitialized object)
bernat [Tue, 5 Jun 2001 19:50:13 +0000 (19:50 +0000)]
Fix coredump problem (using an ininitialized object)

19 years agoRemoved USES_LIBDYNINSTRT_SO defines
bernat [Mon, 4 Jun 2001 19:25:59 +0000 (19:25 +0000)]
Removed USES_LIBDYNINSTRT_SO defines

19 years agoPlatform migration: updated to set ARCH_DEF compiler argument for solaris 2.7
schendel [Mon, 4 Jun 2001 19:09:55 +0000 (19:09 +0000)]
Platform migration: updated to set ARCH_DEF compiler argument for solaris 2.7
platform M make.config

19 years agoCross platform commit: removing USES_LIBDYNINSTAPI_RT define from all
bernat [Mon, 4 Jun 2001 18:42:04 +0000 (18:42 +0000)]
Cross platform commit: removing USES_LIBDYNINSTAPI_RT define from all
platforms. No longer necessary as all platforms use it. May the old code
rest in peace (or in CVS).

Reworked the symbol handling code in symtab.C. Cleaned up the symbol
adding path and removed obsolete tags handling.
M paradynd/src/dynrpc.C
M paradynd/src/mdl.C
M dyninstAPI/src/symtab.C
M dyninstAPI/src/symtab.h

Added (disabled) support for hardware counters:
M rtinst/src/RTetc-aix.c

Added comments:
M rtinst/src/RTthread-asm-sparc.s

19 years agoPlatform migration
schendel [Mon, 4 Jun 2001 16:24:10 +0000 (16:24 +0000)]
Platform migration

19 years agorollback previous commit, platform independent change didn't work
schendel [Thu, 31 May 2001 18:05:57 +0000 (18:05 +0000)]
rollback previous commit, platform independent change didn't work

19 years agolink in the Xpm library which defines a function called within Xaw
schendel [Thu, 31 May 2001 17:28:11 +0000 (17:28 +0000)]
link in the Xpm library which defines a function called within Xaw

19 years agoFix a file descriptor leak.
bernat [Wed, 30 May 2001 22:25:40 +0000 (22:25 +0000)]
Fix a file descriptor leak.

19 years agosome bugs are fixed:
wxd [Thu, 24 May 2001 18:38:45 +0000 (18:38 +0000)]
some bugs are fixed:
1. change File|Dump menu to File|Save
2. change title of termWin to "Application Data"
3. selected text in termWin is not black any more

the most important bug fix decision is to redirect all paradynd debug information to termWin, therefore in MPI application, the debug output from the first paradynd is also displayed in termWin. Paradynd debug info is shown in red color, different from application output.

19 years agoremove a couple of compiling warning caused by last commit
wxd [Thu, 24 May 2001 18:37:13 +0000 (18:37 +0000)]
remove a couple of compiling warning caused by last commit

19 years agoThe class returnInstance records the instruction that branches from
ning [Wed, 23 May 2001 21:58:58 +0000 (21:58 +0000)]
The class returnInstance records the instruction that branches from
an instrumentation point to its corresponding base tramp.  A field,
insnsOverwritten, is added to this class, to record the number of
instructions that will get overwritten when the branch is installed.
We check insnsOverwritten before installing the branch, so that if
only 1 instruction gets overwritten, we know it's safe to install
and we don't need to walk the stack.  needToWalkStack is a method
added to class metricDefinitionNode to do this check.

This commit also has some cleanup for metric.C.

19 years ago This adds to the commit that I made Monday. I had forgotten that the
gurari [Wed, 23 May 2001 18:01:02 +0000 (18:01 +0000)]
  This adds to the commit that I made Monday. I had forgotten that the
  main issue behind the o7 problem was not that relocation of a function
  with a call to a retl would fail (although it would), but that
  instrumentation of a function with such a call would fail if the call
  instruction was in the footprint of an instpoint and therefore needed to
  be relocated to the basetramp. To deal with this more general problem, we
  now relocate a function that has a call to a retl instruction before we
  instrument the function. I also cleaned up LocalAlteration-Sparc.C a bit.

19 years ago This commit fixes a problem we were having with an instruction sequence
gurari [Mon, 21 May 2001 23:25:13 +0000 (23:25 +0000)]
  This commit fixes a problem we were having with an instruction sequence
  that was used to set the o7 register with the PC, but which would not
  executing correctly after a function was relocated. The problem came up
  when a call was made to a location outside of the function, and the target
  of the call was a retl instruction. This would cause a return directly
  back to the function but would have the effect of setting the o7 register
  with the PC, so that it could be used for loading data. The fix I
  implemented was to rewrite the function (when it is relocated), so that
  the o7 register is set with a sethi, or sequence, and the instruction in
  the delay slot of the retl is copied directly into the relocated
  function. As such, the relocated function does not make a call to set the
  o7 register. I removed tikir's temporary fix of the problem, and added a
  parameter to a function that was called by both sparc and x86.

19 years agoChanged so that mpich startup wrapper is written in location accessible
pcroth [Fri, 18 May 2001 20:53:25 +0000 (20:53 +0000)]
Changed so that mpich startup wrapper is written in location accessible
to all MPI processes, no matter whether first process is co-located with
the Paradyn front-end process or not.

19 years agoChanges in this commit implemented a dynamic code generation optimization.
ning [Sat, 12 May 2001 21:29:36 +0000 (21:29 +0000)]
Changes in this commit implemented a dynamic code generation optimization.
The basic idea is, all the definitions (including instrumentation point
and instrumentation definition) of an instrumentation variable are grouped
together, and form a primitive metricDefinitionNode.  The variable could
either be a constraint variable or be a metric variable.  When a new
variable is created, its definitions are checked against those of the
variables already created, and reuse the old one if a match is found.

An example that shows the benefit of this optimization would be:
if the same focuses (a couple of procedures for example) are selected for
two different metrics that are of the same constraints, then they could
share the use of the constraint flag instead of creating two instances.
Of course the optimization is much general than this example.

19 years agoadded some lines inside #ifdef BPATCH_LIBRARY
tikir [Tue, 8 May 2001 19:19:31 +0000 (19:19 +0000)]
added some lines inside #ifdef BPATCH_LIBRARY

19 years agoUpdated interface version numbers to reflect that interfaces have changed.
pcroth [Tue, 8 May 2001 15:23:18 +0000 (15:23 +0000)]
Updated interface version numbers to reflect that interfaces have changed.

19 years agoSolution to the o7 problem in SPARC
tikir [Mon, 7 May 2001 19:22:35 +0000 (19:22 +0000)]
Solution to the o7 problem in SPARC

19 years agoThis takes care of a couple more relocation related bugs on sparc. The
gurari [Fri, 4 May 2001 21:22:42 +0000 (21:22 +0000)]
This takes care of a couple more relocation related bugs on sparc. The
first bug is related to the fact that sparc has two different variables
that need to get set when a function is relocated, isTrap and
relocatable_. There were cases where relocatable_ was not being set even
though the function was relocated, which caused inconsistencies that led
to a function returning addresses in the original function and not
the relocated function. The second bug is a little more complex, but it
has to do with how we represent instPoints on Sparc and how we detect
overlapping instPoints. I've added a variable to sparc's instPoints
insnAddr, that is the address of the insn that corresponds to the
instrumentation point. Sparc instPoint's already have a variable called
addr, but this corresponds to the address at the beginning of the
instPoints footprint (the instructions that need to be overwritten
to instrument the point). The new variable insnAddr is better suited to
determining how to tweak apart overlapping instPoints.

19 years agoA tail-call optimization was not being recognized due to the code's
gurari [Wed, 2 May 2001 21:38:06 +0000 (21:38 +0000)]
A tail-call optimization was not being recognized due to the code's
referencing the instPoint that corresponded to the return, rather
than the instPoint that corresponded to the call, in the tail-call
optimization. This caused an assertion to fail when relocating __sqrt.

19 years agoFixed if statement test that was coded as an assignment.
pcroth [Wed, 2 May 2001 20:21:24 +0000 (20:21 +0000)]
Fixed if statement test that was coded as an assignment.

19 years agoa "t" is omitted in the line
wxd [Thu, 26 Apr 2001 19:41:27 +0000 (19:41 +0000)]
a "t" is omitted in the line
threadComps     = rtinst/multi-thread-aware paradynd/multi-thread-aware

20 years agoadd visiClients/termWin into paradyn makefile
wxd [Wed, 25 Apr 2001 20:51:37 +0000 (20:51 +0000)]
add visiClients/termWin into paradyn makefile

20 years agothis commit enables redirect application's output to a new tcl/tk terminal window...
wxd [Wed, 25 Apr 2001 20:34:12 +0000 (20:34 +0000)]
this commit enables redirect application's output to a new tcl/tk terminal window. Therefore the output of paradyn front-end and debug information of paradyd will not mix up with the output of application.

current commit can only redirect application's output when paradyn starts application. no modification is made when paradyn attach an already running application. also current commit can only work in unix-like platform. NT version met a cupple problems.

some modification is also made when front-end and paradynd start. when front-end starts, it create a network socket, which will pass to tcl/tk terminal window. Also it wil create tcl/tk terminal window when new application is started locally or remotely. The port of that network socket will be given to paradynd, so that paradynd can setup connection with front-end terminal window, and redirect output when starting new application.

20 years agothis commit enables redirect application's output to a new tcl/tk terminal window...
wxd [Wed, 25 Apr 2001 20:31:36 +0000 (20:31 +0000)]
this commit enables redirect application's output to a new tcl/tk terminal window. Therefore the output of paradyn front-end and debug information of paradyd will not mix up with the output of application.

current commit can only redirect application's output when paradyn starts application. no modification is made when paradyn attach an already running application. also current commit can only work in unix-like platform. NT version met a cupple problems.

Modification is made to the part of code paradynd make use to create new application. the original paradynd redirect application's output to itself, then switch output to front-end. in current commit, paradynd first setup a network connection with tcl/tk terminal window of front-end, then duplicate this connection as the output of application.

20 years agothis commit enables redirect application's output to a new tcl/tk terminal window...
wxd [Wed, 25 Apr 2001 20:11:56 +0000 (20:11 +0000)]
this commit enables redirect application's output to a new tcl/tk terminal window. Therefore the output of paradyn front-end and debug information of paradyd will not mix up with the output of application.

current commit can only redirect application's output when paradyn starts application. no modification is made when paradyn attach an already running application. also current commit can only work in unix-like platform. NT version met a cupple problems.

this part of modification to paradyn is adding a new tcl/tk terminal window to show output of application which paradyn is working on. In that window, save menu can give paradyn user the chance to save the application's output to disk. option menu let paradyn user choose the way of terminal window's termination. Currently two modes are provide: on paradyn exit or persistant, in which paradyn exit is the default way.

20 years agoFirst version of termWin
wxd [Wed, 25 Apr 2001 20:09:42 +0000 (20:09 +0000)]
First version of termWin

20 years agoFirst version of makefile of termWin author --wxd
wxd [Wed, 25 Apr 2001 20:07:51 +0000 (20:07 +0000)]
First version of makefile of termWin author --wxd

20 years agothis commit can help paradyn user query currently enabled metric/focus pair.
wxd [Wed, 25 Apr 2001 18:40:41 +0000 (18:40 +0000)]
this commit can help paradyn user query currently enabled metric/focus pair.

when paradyn is running, metric/focus pair can be enabled and disabled either by way of performance consultant, or by manually selection of user when starting some visi application. The update in this commit enable user easily query currently enabled metric/focus pair. Paradyn user can right-click on some function node in whereAxis, a visi table window pops up to show data of metric/focus pairs those are currently enabled and match the function name.

for example, if paradyn user right click on /Code/anneal.c node in whereAxis, a query is sent to dataManager for currently enabled matching metric/focus. dataManager send back two pairs: ("/Code/anneal.c,/Machine,/SyncObject",cpu) and ("/Code/anneal.c,/Machine,/SyncObject",cpu_inclusive). A table visi is started with these two metric/focus and future performance data of these metric/focus to show the current state of application.

also paradyn user can predefine some metric/focus pair in configuration file so that in paradyn execution, when predefined visi is started, the metric/focus information it shows is the union of predefined set and the set paradyn user manually selected. This functionality can bring about some extensions. for example, paradyn user can define metric/focus information using regualar expression in configuration file and choose no manual selection, when that specific visi instance is started in paradyn, those matching enabled metric/focus pairs will be added into visi instance window, just like a query functionality. in current commit, metric/focus match make use of exact matching of focus name, no regular expression is involved.

for example, paradyn user can predefine metric/focus property of visi instance as follows
visi Predefined_Barchart {
    command "barChart";
    metfocus "cpu,/Code/anneal.c,/Machine,/SyncObject";
    force 1;
}

20 years agoFile names in line info parsing do not grow any more.
tikir [Mon, 23 Apr 2001 02:38:49 +0000 (02:38 +0000)]
File names in line info parsing do not grow any more.

20 years agoncreased the size of maximum directories to 1024
tikir [Thu, 19 Apr 2001 21:10:25 +0000 (21:10 +0000)]
ncreased the size of maximum directories to 1024

20 years agoWith this commit we now relocate functions that have overlapping
gurari [Thu, 19 Apr 2001 19:53:53 +0000 (19:53 +0000)]
With this commit we now relocate functions that have overlapping
instPoints or branches into instPoints, rather than rejecting them as
uninstrumentable. I also fixed a problem with identifying
overlapping instPoints. We previously had problems when there were two
consecutive tail-call optimizations. We would identify  an overlap between
the delay slot of the first tail call, and the call or jump in the second
tail call. The identified overlap would later cause an assertion to
fail. We now do not care for such overlaps because the rewriting of the
tail-call optimizations and the relocation of the function eliminate the
problems that would otherwise arise from overlapping instPoints.

20 years agoWith this commit we now relocate functions that have overlapping
gurari [Thu, 19 Apr 2001 17:52:24 +0000 (17:52 +0000)]
With this commit we now relocate functions that have overlapping
instPoints or branches into instPoints, rather than rejecting them as
uninstrumentable. I also fixed a problem with identifying
overlapping instPoints. We previously had problems when there were two
consecutive tail-call optimizations. We would identify  an overlap between
the delay slot of the first tail call, and the call or jump in the second
tail call. The identified overlap would later cause an assertion to
fail. We now do not care for such overlaps because the rewriting of the
tail-call optimizations and the relocation of the function eliminate the
problems that would otherwise arise from overlapping instPoints.

20 years agocahnges to enable correct arbitrary inst and CFG generation
tikir [Mon, 16 Apr 2001 18:47:38 +0000 (18:47 +0000)]
cahnges to enable correct arbitrary inst and CFG generation
for shared library methods and functions.

20 years agomodifications in the code for arbitrary inst and CFG generation
tikir [Mon, 16 Apr 2001 18:46:32 +0000 (18:46 +0000)]
modifications in the code for arbitrary inst and CFG generation
for the functions/methods in a shared lib.

20 years agoThe OLD_CATCHUP code is now used in MT_THREAD case to catch the cases
ning [Wed, 11 Apr 2001 17:24:38 +0000 (17:24 +0000)]
The OLD_CATCHUP code is now used in MT_THREAD case to catch the cases
where the WHOLE_PROGRAM metrics have not been set to manually trigger by
the new CATCHUP code.  This is necessary because some threads are created
executing some function other than "main".

  Also, metricDefinitionNode's method "adjustManuallyTrigger0" is modified
  to call "adjustManuallyTrigger0" recursively instead of calling
  "adjustManuallyTrigger".

20 years agoRemove a printline I accidentally left in my last commit.
gurari [Fri, 6 Apr 2001 16:08:08 +0000 (16:08 +0000)]
Remove a printline I accidentally left in my last commit.

20 years agochange in AbbreviateFocus method.
wxd [Thu, 5 Apr 2001 18:36:25 +0000 (18:36 +0000)]
change in AbbreviateFocus method.
in old implementation of paradyn, when a long function name comes up, it is abbreviated and append some ",,," at the end. However, "," is considered by paradyn as the separarion chararcter used in focus name such as "/Code,/Machine,/SyncObject". That caused ambiguity in tableVisi. My solution is to choose "." when appending abbreviated long function name.

example:
old abbreviated name: /Code/DEFAULT_MODULE/iterator_traits<_Rb_tree_iterator<pair<int,,,,,,,
new abbreviated name: /Code/DEFAULT_MODULE/iterator_traits<_Rb_tree_iterator<pair<int.......

20 years ago This commit allows us to enable a metric for a given focus even if
gurari [Wed, 4 Apr 2001 17:33:10 +0000 (17:33 +0000)]
  This commit allows us to enable a metric for a given focus even if
another function is relocated in between the time we relocate the
function and the time we decide to instrument a point in the function.
The factor that led to the problem was that after a function was
rewritten, we kept a copy of the rewritten function in the daemon, but in
a temporary buffer that was overwritten if another function was relocated.
This caused problems because upon relocation of a function, we would
update the function's instPoints, which included updating a pointer to a
machine instruction. This pointer was updated to point to an instruction
in the temporary buffer.
  When we enable a metric focus pair we access the instruction pointed to
by the pointer, and in the case where the temporary buffer was overwritten
(by another function being relocated), the instruction that was pointed to
was bogus. The fix: paradyn now keeps a permanent copy of the rewritten
version of the function.
  It should be noted that this commit changes code used by both x86 and
sparc.