Home
Chapter 1. Extending Ptolemy — Introduction
Contents
1. Introduction Each of the three binaries above has three different versions that contain different functionality Below we only list the different version of pigiRpc but ptcl and tysh have similar versions pigiRpc This binary contains all of the domains so it is the largest binary pigiRpc ptrim This binary contains SDF DE BDF DDF and CGC domains only pigiRpc ptiny This binary contains SDF no image stars and DE domains only Each of the above versions can also be built as a debug version that contains debug ging information The file PTOLEMY mk ptbin mk contains rules to build the above bina ries in combination with debugging and other features The file PTOLEMY mk stars mk contains rules that indicate dependencies between domains and other features 1 3 Creating Custom Versions of pigiRpc Ptolemy is an extensible system Extensions can take the form of universes and galax ies which are viewed by Ptolemy as applications but they can also take the form of additional code linked to the Ptolemy kernel New stars can be dynamically linked see Writing Stars for Simulation on page 2 1 Other additional code has to be linked in statically If you add many of your own stars to the system you will want these stars to be statically linked as well so that you do not have to wait for the dynamic linking to complete every time you execute your applications The Ptolemy kernel and vem the schematic editor r
2. If you are extending Ptolemy in nontrivial ways such as writing a new domain we U C Berkeley Department of EECS The Almagest 1 9 suggest that you create your own copy of the Ptolemy directory tree You may use symbolic links to the official directories if you do not need to modify or work on them Your new code should be placed in the parallel directory with the other similar Ptolemy subdirectories using the same directory structure This way you can reuse the makefiles of similar Ptolemy directories with minimal modifications After you create your own Ptolemy tree and add your new directories and files certain Ptolemy makefiles typically SPTOLEMY mk ptbin mk and SPTOLEMY mk stars mk need to be modified to include your own code Building your own pigiRpc ptcl or tysh this way requires extensive knowledge of the Ptolemy directory tree structure and makefiles but if you are doing serious development in Ptolemy you will need to know this anyway Warning If you have write permission in the directory where Ptolemy is installed make sure to modify the place where make install puts the completed executable or it will attempt to overwrite the pigiRpc in the Ptolemy installation and other users may be upset with you if you succeed in doing that If you are using the makefile from PTOLEMY src pigiExam ple you do not need to worry about this because make install has been removed from that makefile The simp
3. 4 Oxef485fb8 in SDFAtomCluster run this 0x278570 at src domains sdf kernel SDFCluster cc 1032 More stack frames follow gdb This particular stack trace is a little strange at the bottom gdb calls the lower num bers the bottom even though they are at the top of the list because it was generated by invok ing a dynamically linked star and the symbol information is not complete However you can still find out quite a bit Notice that you are now told where the files are that define the meth ods being called The file names are all relative to the directory in which the corresponding object file normally resides The Ptolemy files can all be found in some subdirectory of SPTOLEMY src You can get help from gdb by typing help Suppose you wish to find out first which star is being run when the crash occurs The following sequence moves up in the stack until the run call of a star gdb up 1 Oxe3864 in SimControl getPollFlag at src kernel SimCon trol ce 271 U C Berkeley Department of EECS The Almagest 1 25 271 ptBlockSig SIGALR gdb up 2 Oxe3e5c in Star run this 0x28c908 at src kernel Star cc 73 73 gol gdb At this point you can see that line 73 of the file SPTOLEMY src kernel Star cc reads gol Odds are pretty good that the problem is in the go method of the star You can find out to which star this method belongs as follows g
4. Ptolemy Last updated 10 17 97 When you cd to PTOLI checks to see if the directory PTOL Extending Ptolemy Introduction EMY and type make SPTOLEMY makefile contains a rule that EMY obj SPTARCH exists If this directory does not exist then make runs the command csh f MAKEARCH where MAKEARCH is aC shell script at SPTOLEMY MAK SPTOLEMY obj PTARCH for PTARCH if they do not exist EARCH MAK EARCH will create the necessary subdirectories under We split up the sources and the object files into separate directories in part to make it easier to support multiple architectures from one source tree The directory PTOLEMY obj SPTARCH contains the platform dependent object files for a particular architecture The platform depen dent binaries are installed into SPTOLI EMY bin PTARCH and the libraries go into SPTOLEMY 1ib SPTARCH Octtools Tcl Tk and Gnu tools have their own set of architec ture dependent directories The makefiles are all designed to be run from the obj PTARCH tree so that object files from different platforms are kept separate when you run make in the PTOLEMY top level the appropriate obj SPTARCH tree is selected for you automatically We are able to have separate object and source directories by using the make pro gram s VPATH facility Briefly VPATH is a way of telling make to look in another directory for a file if that file is not present in the cu
5. ample directory to create a custom pigiRpc with user added stars One reason for doing this would be to that on some platforms stars that have been incrementally linked are not visible from the debugger Creating a custom pigiRpc with the star as a built in star can aid debug ging After running mkPtolemyTree edit PTOLEMY src pigiExample make tem plate and add your stars as described in Creating a pigiRpce that includes your own stars on page 1 7 1 4 4 Known Bugs in mkPtolemyTree e To build a customized pigiRpc you set makefile variables like SDF or CG56 to 1 in your override mk If you happen to have an environment variable called SDF or CG56 this procedure fails because the rule in stars mk just checks whether the vari able is defined or not not what value it has So ensure that you have no environment Ptolemy Last updated 10 17 97 1 12 Extending Ptolemy Introduction variables that clash with the variables used in override mk Suggested fix In stars mk not only check whether a variable like SDF is defined but also check its value Hopefully the value is different from the other definition and the code is more robust e IfmkPtolemyTree gives you the following message Making a customized Ptolemy development tr using the version of Ptolemy installed in the directory users ptolemy The new customized Ptolemy tree will go in users cxh mypt mkdir illegal option n mkdir usage mkdir m
6. arguments are passed on to the 1s command So to remove all symbolic links including those that are invisible use the a option o rml a You can also give file names as arguments to remove just some of the symbolic links o S rml o The mk1 alias Suppose you wish to compile your change to the DDFRepeater pl file as above You will need to make an object tree Assume you are on a Sun Solaris 2 x platform You have created a parallel tree already in Ptolemy src Le Ptolemy src domains ddf stars exists Create the corresponding object tree ae cd Ptolemy exp obj sol2 exp domains exp ddf exp stars pwd users me Ptolemy obj sol2 domains ddf stars A A AP Al oe The directory in which you are now located contains symbolic links to the o files and make files in the official Ptolemy tree If you run make here your replacement DDFRepeater pl star will be compiled in place of the official one If you run make install then a library will be created and installed in the directory Ptolemy 1lib so12 assuming this directory exists Running make as above uses the makefiles in the official Ptolemy tree because you have symbolic links to them Suppose you wish to modify the make template file in Ptolemy src domains ddf stars In this case you should run the mk1 alias to replace the makefile symbolic links If you have followed the above steps try this pwd users me Ptolemy o
7. mode p dirname The try setting your path so that usr ucb is before usr bin The problem here is that in Ptolemy 0 7 the mkPtolemyTree script uses the n option with echo which is not portable e mkPtolemyTree cannot add new directories to an already existing tree it can only be used to create a brand new parallel tree e MAKEARCH may fail when used with a tree that was created with mkPtolemyTree since MAKEARCH may follow symbolic links into the master tree where the user does not have write permission e mkPtolemyTree requires that the master Ptolemy tree have a fully expanded obj PTARCH directory Otherwise you will get an error about no sources rule found 1 5 Using csh aliases to create a Parallel Software Development Tree Below is a set of C shell aliases that can be used to create a parallel software develop ment tree 1 5 1 Aliases for Managing Symbolic Links Below are several csh aliases that can be helpful when managing a duplicate hierar chy that is implemented with symbolic links alias pt echo Scwd sed s HOME Ptolemy PTOLEMY alias ptl 1n s pt alias sw mv swap mv W mv swap alias exp mkdir sw cd ptl alias rml rm f ls F sed n s S p alias mkl rml make ln s vpath make These are documented below in detail For convenience these aliases can be found in the file SPT
8. of the functionality in pigiRpc not including the Tk stars ptc1 does not contain an interface to Octtools tysh The Tycho shell version which is similar to pigiRpc except that tysh does not contain an interface to Octtools Note that Tycho can be run from a basic it kwish binary that contains no Ptolemy functionality bdf c50 cg cg56 cgc ddf de SPTOLEMY Jo src domains hof pn sdf sr vhdl vhdl XXX Boolean controlled dataflow domain code generation for the Texas Instruments C50 the base class domain for all code generation code generation for the Motorola DSP56000 code generation in C dynamically scheduled dataflow the discrete event domain finite state machine domain higher order function domain the process network domain synchronous dataflow statically scheduled synchronous reactive domain code generation for behavioral modeling in VHDL code generation for behavioral modeling in VHDL demonstration of how to define a new domain FIGURE 1 3 The structure of the PTOLEMY src domains directory demo demonstrations of the domain icons the oct facets defining the icons used by pigi SPTOLEMY kernel the core code defining the domain src domains xxx stars stars distributed with the domain targets optional additional targets used by the domain FIGURE 1 4 The structure of a typical domain directory within P TOLEMY src domains Ptolemy Last updated 10 17 97 1 6 Extending Ptolemy
9. such as VHDL adds directories to CUSTOM_DIRS Also a feature can require sub features and the sub features can add directories to CUSTOM_DIRS For example VHDL require and CG adds more directories to CUSTOM_DIRS U C Berkeley When you run SPTOLEMY bin mkPtolemyTree the following events occur S CG 1 From the override mk file that the user specifies the script builds a tree with the directories as specified the value of the CUSTOM_DIRS makefile variable 2 Next the files in the PTOLEMY tree are copied over if the directory exists using tar to save modification times 3 For each directory specified by CUSTOM_DIRS we create symbolic links to a ll the directories that we have not expanded from the PTOLEMY tree the make tem plate and makefile symbolic links in the obj directories are set correctly Department of EECS The Almagest 1 11 4 The override mk file is copied into the new tree as NEW_ROOT mk over ride mk where NEW_ROOT is the root path name of the tree we are constructing 5 override mk files are constructed that reference NEW_ROOT mk override mk specific to tysh ptcl and pigiRpc 6 make install is run in NEW_ROOT ob j PTARCH which creates the hard link for the libraries in NEW_ROOT 1ib SPTARCH and builds the custom tysh ptcl and pigiRpc This new tree has all the symbolic links and directories necessary to act as a full fledged Ptolemy tree You should be able to
10. 0 FLOAT 2 star 0 addPort p0 pl setPort output2 amp star 0 FLOAT 3 star 0 addPort pl p2 setPort input amp star 1 FLOAT 3 U C Berkeley Department of EECS The Almagest 1 21 p3 setPort input amp star 2 FLOAT 2 star 1 addPort p2 star 2 addPort p3 Connect em up The graph is star 1 3 lt 2 star 0 3 gt 2 star 2 pO connect pl connect Scheduling AcyLoopScheduler sched sched setGalaxy topGalaxy cout lt lt No problem till now Calling sched setup n sched setup int i for i 0 i lt 3 i cout lt lt star i fullName lt lt n cout lt lt Repetitions lt lt star i reps lt lt n StringList sch sched displaySchedule cout lt lt sch The command to compile this and produce a standalone binary would be make f SPTOLEMY mk standalone mk OPTIMIZER SDF 1 USE_SHARED_LIBS yes testAcyLoopSched debug 1 7 Debugging Ptolemy and Extensions Within Pigi The extensibility of Ptolemy can introduce problems Code that you add may be defec tive few people write perfect code every time or may interact with Ptolemy in unexpected ways These problems most frequently manifest themselves as a Ptolemy crash where the Ptolemy kernel aborts creating a core file The fact that pigiRpc and vem are separate Unix processes has the advantage that when pigiRpc aborts with a
11. 97 1 26 Extending Ptolemy Introduction e Miscellaneous debugging hints for gdb on page 1 28 See also Appendix A of the Ptolemy User s manual Using emacs gdb and pigi By default gdb is started in an X terminal window with its default command line interface Many people prefer to interface with gdb through emacs which provides much more sophisticated interaction between the source code and the debugger To get an emacs interface to gdb assuming emacs is installed on your system set the following environment variable setenv PT_DEBUG ptgdb To find out more about using gdb from within emacs start up emacs and type M x info Then type m emacs Then go down to Running Debuggers Under Emacs Starting GUD How to start a debugger subprocess Debugger Operation Connection between the debugger and source buffers Commands of GUD Key bindings for common commands GUD Customization Defining your own commands for GUD Gdb and the environment Note that the documentation for gdb says the following Warning GDB runs your program using the shell indicated by your SHELL environment variable if it exists or bin sh if not If your SHELL variable names a shell that runs an initialization file such as cshrc for C shell or bashrce for BASH any variables you set in that file affect your program You may wish to move setting of environment variables
12. Chapter 1 Extending Ptolemy Introduction Authors Christopher Hylands Edward A Lee Thomas M Parks Jos Luis Pino 1 1 Introduction Ptolemy is extensible in the following ways e New galaxies can be defined We do not view this as a programming task so it is explained in the User s Manual rather than in this Programmer s Manual e Customized simulation builders and controllers can be created using the ptcl inter preted command language This language is also covered in the User s Manual e New functional blocks stars can be added to any of the Ptolemy domains These blocks can be dynamically linked with either ptcl or pigi e New code generation blocks can be added to existing synthesis domains e Stars with customized user interfaces and displays can be created using Tcl Tk e New simulation and design flow managers called targets can be created e New domains with new models of computation can be created This volume explains how to accomplish most of the above The Kernel Manual volume 3 of The Almagest supplements this volume with a detailed listing of all of the classes in the Ptolemy kernel and in the code generation kernel The sophisticated user however who is extending the system in nontrivial ways will wish to refer to the source code as the ultimate most complete documentation In this volume we assume familiarity with the terminology and use of Ptolemy Refer to the User s Manual and particul
13. DownCounter pl DDFRepeater pl ddfstars c DDFEndCase cc DDFSelf cc ddfstars mk DDFEndCase h DDFSelf h make template DDFEndCase pl DDFSelf pl makefile This creates a directory named stars and fills it with symbolic links to the contents of the corresponding directory in the official Ptolemy tree Using the F option of the 1s com mand makes it easy to see which files in a directory are symbolic links they are marked with a trailing sign The sw Alias When experimenting with Ptolemy you may want to switch back and forth between using the official version of some directory and your own version You can keep two versions of the same directory or a file The sw alias swaps a file or directory filename with another file or directory filename The period at the beginning of the second file name makes it invisible unless you use the a option of the 1s command For example suppose you wish to experiment with making a change to just one file DDFRepeater pl in the directory above to fix a bug and then send the bug fix back to the Ptolemy group Ptolemy Last updated 10 17 97 1 14 Extending Ptolemy Introduction o pwd users me Ptolemy src domains ddf stars sw DDFRepeater pl mv cannot access DDFRepeater pl ls a ad DDFEndCase h DDFThresh cc sash DDFEndCase pl DDFThresh h DDFRepeater pl DDFLastOfN cc DDFThresh pl DDFCase cc DDFLastOfN h SCCS DDFCase
14. H is an environment variable representing the architecture on which you are running and has one or more of the following values sun4 so12 or hppa for Sun under Sun O S Sun under Solaris 2 X and HP machines respectively There are a few other pos sible values for the PTARCH variable as well There might be variations like sol2 cfront or hppa cfront to store an object tree created by the Cfront C compiler or some other non g compiler The script PTOLEMY bin ptarch will return the architecture of the machine on which it is run For example if you were on a machine running SunOS4 1 3 you would type setenv PTARCH sun4 You can use the following fragment in your cshrc file to set SPTOLEMY and SPTARCH The SPTOLEMY cshrc file contains the fragment below and many other csh setup commands you may find useful setenv PTOLEMY users ptolemy if S SPTARCH setenv SPTARCH SPTOLEMY bin ptarch set path SPTOLEMY bin SPTOLEMY bin SPTARCH path Note that if you are using a prebuilt Gnu compiler that you obtained from the Ptolemy project you must either place the Ptolemy distribution at users ptolemy or you must set certain environment variables so that the Gnu compiler can find the necessary pieces of itself Appendix A Installation and Troubleshooting of the Ptolemy User s Manual discusses these variables in detail The variables change with different releases of the compilers so we do not documen
15. L src pigil EMY obj PTARCH pigil Example init pal Example pigiRpc PTOLI BJS and If you built your pigiRpc with SDFMyStar o you can test your pigiRpc by EMY and then run the wave universe If you want to have the binary you just built be the default binary for yourself you can set your PI the name of the binary you just built G setenv PI IRPC PTOL EMY obj PTARCH pigil G Example pigiRpc IRPC environment variable to Next time you start pigi your new executable will be used instead of the standard one To revert to using the installed pigiRpc just type GI unsetenv PI SPTOLI directory RPC If you want your pigiRpc to be the default pigiRpc you can install it in EMY bin PTARCH but this will wipe out whatever pigiRpc is in that With the same makefile you can make a version of the pigiRpc program that has debug symbols Just type make pigiRpc debug To use this assuming the Gnu debugger gdb is in your path specify the executable as fol lows setenv PIG SPTOLI assuming your executable is in as follows pigi debug To revert to using the installed p a unsetenv PI IRPC EMY obj SPTARCH pigil Example pigiRpc debug PTOLEMY obj PTARCH igiRpc just type RPC pigil 1 3 2 Creating a pigiRpc with more extensive customizations Example Then start pigi
16. Last updated 10 17 97 Extending Ptolemy Introduction ERSION_DESC VHDL only The file SPTOLEMY mk ptbin mk contains a list of the makefile variables that can be set to bring in the various domains 2 Set SPTOLEMY to point to the Ptolemy distribution in this example the Ptolemy distribution is at users ptolemy setenv PTOLEMY users ptolemy 3 Set PTARCH to the appropriate value setenv PTARCH SPTOLEMY bin ptarch 4 Set the path properly set path SPTOLEMY bin SPTOLEMY bin SPTARCH path 5 Execute the mkPtolemyTree command so that the override mk file is used to create a custom tree in the mypt directory mkPtolemyTree override mk mypt In general you will want to define the variables TK and HOF Setting TK indicates that you want to include Tcl Tk extensions to the domains Setting HOF means that you want to include the higher order functions domain The higher order functions domain is used in many demonstrations to configure stars with multiple portholes and to specify scalable sys tems So adding these make variables in the same override mk file would make it look like the following HOF 1 TK 1 VHDL 1 DEFAULT_DOMAIN VHDL VERSION_DESC VHDL only 1 4 2 How mkPtolemyTree works src stars mk contains a makefile variable named CUSTOM_D1 To accumulate a list of the directories necessary to build a custom tree PTOLI EMY RS In stars mk each fea ture
17. Log pt file Note the number of iterations for the universe and then exit pigiRpc Copy pigiLog pt to somewhere A short file name like tmp tst tcl will save time in typing since you may be typing it often Don t use something inside your home directory as you can t easily use inside ptcl Edit the file and add a run Xxx line and a wrapup line at the end If the demo should run for 100 iterations then add run 100 wrapup to the end of the file Build a ptcl debug that has just exactly the functionality you need by using an override mk file Alternatively you could use either ptcl ptrim debug or ptcl ptiny debug If your demo is SDF then try building and using ptcl ptiny debug If you use emacs then you can start up gdb on your binary with M x gdb Then type in the name of the binary You may have to use the full pathname Inside emacs you can then set breakpoints in the gdb window either by typing a break command or by viewing the file and typing Cont rol X space at the loca tion you would like a break point Type r to start the process and then source your demo with source tmp tst tcl If you want to recompile your demo outside of gdb and then reload it into your gdb session use the file command inside gdb Last updated 10 17 97 1 28 Extending Ptolemy Introduction file users cxh pt obj sol2 ptcl ptcl ptiny debug Your breakpoints will be saved which is a big time saver Mi
18. OLEMY alias The pt Alias The pt alias returns the name of the official Ptolemy directory that corresponds to U C Berkeley Department of EECS The Almagest 1 13 the current directory which is presumably in your personal hierarchy This assumes that you have the environment variable P TOLEMY set to the root directory of the official version of Ptolemy and that your private version is in Ptolemy If this is not the case then you should make suitable modifications to definition of the pt alias This alias is useful when you want to make a symbolic link to or otherwise access the official version of a file as in le cd Ptolemy src domains sdf kernel ln s pt secs o9 This will create a symbolic link in your directory Ptolemy src domains sdf kernel to the directory PTOLEMY src domains sdf kernel sccs For information on source code control see below The pt1 Alias The pt1 alias uses the pt alias to create in the current directory symbolic links to all the files in the corresponding official directory This is useful for quickly filling in the branches of a new directory in your private hierarchy pwd users me Ptolemy src domains ddf mkdir stars ptl ls F DDFCase cc DDFLastOfN cc DDFThresh cc DDFCase h DDFLastOfN h DDFThresh h DDFCase pl DDFLastOfN pl DDFThresh pl DDFDownCounter cc DDFRepeater cc SCCS DDFDownCounter h DDFRepeater h TAGS DDF
19. Ptolemy obj SPTARCH domains sdf kernel make install o9 To make a version pigiRpc or better yet ptinyRpc with your changes Ptolemy Last updated 10 17 97 1 18 Extending Ptolemy Introduction oe cd Ptolemy obj PTARCH exp pigiRpc mk1l make ptinyRpc A le oe 1 5 3 Source Code Control At the present time at Berkeley the Ptolemy group uses SCCS for source code con trol This means that each directory with source code in it contains a subdirectory called SCCS That subdirectory is not distributed with Ptolemy but if you are starting your own development expanding on Ptolemy you may wish to use a similar mechanism We assume here that you are familiar with SCCS which is a standard Unix facility Recall the command above pwd users me Ptolemy src domains ddf stars sw DDFRepeater pl mv cannot access DDFRepeater pl ls a DDFEndCase h DDFThresh cc sei DDFEndCase pl DDFThresh h DDFRepeater pl DDFLastOfN cc DDFThresh pl DDFCase cc DDFLastOfN h SCCS DDFCase h DDFLastOfN pl TAGS DDFCase pl DDFRepeater cc ddfstars c DDFDownCounter cc DDFRepeater h ddfstars mk DDFDownCounter h DDFSelf cc make template DDFDownCounter pl DDFSelf h makefile DDFEndCase cc DDFSelf pl Note the symbolic link to the official SCCS directory This will not be present if you are using the distributed Ptolemy and have not created it Assume however that you have put this d
20. anges 1 5 2 Creating a Duplicate Hierarchy Let s look at a complete example to see how these aliases can be used Suppose you want to modify an existing file that is part of the kernel for the SDF domain You will need a private copy of the file that is writable This allows you to make your changes without affect ing the official version of Ptolemy In order to test your change you will have to build a pri vate version of the interpreter ptc1 or the graphical interface pigiRpc First create the root directory for your duplicate hierarchy o mkdir Ptolemy Then go into that directory and create symbolic links to all files in the corresponding offi cial Ptolemy directory o9 cd Ptolemy ptl You will want to have a private version of the lib PTARCH directory so that you won t modify the official version of any library or object files oe cd Ptolemy exp lib PTARCH This assumes your PTARCH environment variable is set You will also want a private U C Berkeley Department of EECS The Almagest 1 17 obj PTARCH directory for the same reason In this example the tree is expanded down to the sdf directory o9 cd Ptolemy exp obj PTARCH exp domains exp sdf oA ol o9 If you are modifying code in the sdf kerne1 directory then you will want to expand it as well Once expanded you will want remove the make template and makefile links which point to the officia
21. arly to the glossary contained therein for assistance We also assume you are familiar with the overall organization of the Ptolemy software as described in User s Manual 1 2 File Organization Ptolemy is distributed with source code The complete distribution even includes the compiler we use g from the Free Software Foundation Tcl Tk and vem programs that were developed quite independently but upon which Ptolemy relies The distribution also includes a large number of demonstrations Perusing the demonstrations can be an excellent way to get familiar with the system Perusing the source code is by far the best way to under stand the system At a minimum anyone wishing to write new stars should read the source 1 2 Extending Ptolemy Introduction code for a few of the built in stars 1 2 1 Ptolemy environment variables The root of the Ptolemy tree is often installed in the home directory of a fictitious user called ptolemy If the installation follows this model at your site you can find the Ptolemy code with the following command cd ptolemy If your installation does not have a user named ptolemy then you must find out where your system administrator has installed the system and set an environment variable called PTOLEMY to point to this directory For instance if your system administrator installed Ptolemy in users ptolemy then you should issue the following command setenv PTOLEMY users ptolemy PTARC
22. bj sol2 domains ddf stars ls F DDFCase o DDFRepeater o libddfstars a DDFDownCounter o DDFSelf o make template DDFEndCase o DDFThresh o makefile DDFLastOfN o ddfstars o This assumes that the official Ptolemy has been rebuilt after being installed otherwise the o and a files will be missing Expand the makefile symbolic links o ls 1 make Ptolemy Last updated 10 17 97 1 16 Extending Ptolemy Introduction lrwxrwxrwx 1 eal 56 Jul 14 11 30 make templat gt users ptolemy obj sol2 domains ddf stars make template lrwxrwxrwx 1 eal 51 Jul 14 11 30 makefil gt users ptolemy obj sol2 domains ddf stars makefile Note that they point to the official makefiles To make them point to the versions in your own tree mkl ls 1 make lrwxrwxrwx 1 eal 47 Jul 14 11 31 make template gt src domains ddf stars make template lrwxrwxrwx 1 eal 42 Jul 14 11 31 makefile gt src domains ddf stars makefile Now you can modify the make template file in your own tree as you need Warning Note that modifying Ptolemy files is risky You will have essentially created your own version of Ptolemy You will not be able to install future releases of Ptolemy without aban doning your version However if you have modifications that you believe are valuable please communicate them to the Ptolemy group at ptolemy eecs berkeley edu The Ptolemy group welcomes suggestions for ch
23. cause this method U C Berkeley Department of EECS The Almagest 1 7 requires excessive disk space and makes cooperative development difficult many developers prefer to use symbolic links when creating a duplicate hierarchy mkPtolemyTree and the csh aliases can help you setup these symbolic links 1 3 1 Creating a pigiRpc that includes your own stars For those who just want to statically link in their own stars with minimal hacking with makefiles an example showing how to do this is provided in SPTOLEMY src pigiExam ple In the example below we assume that SPTOLEMY and SPTARCH are set and that you have write permission to the Ptolemy source tree If you don t have write permission you can set up a parallel tree with the Unix 1n s command If for example the Ptolemy tree was at users ptolemy but you wanted to build under pt you could do the following to create the directory and create symbolic links for the dot files like cshrc and create symbolic links for the other files and directories in the distribution mkdir pt cd pt in s users ptolemy ln s users ptolemy setenv PTOLEMY pt setenv PTARCH SPTOLEMY bin ptarch rm obj SPTARCH src bin PTARCH mkdir p src src pigiExample bin SPTARCH cd bin SPTARCH ln s users ptolemy bin SPTARCH cd src ln s users ptolemy src cd pigiExample cp users ptolemy src pigiExample You also need to be s
24. db p this 1 lt Block gt lt NamedObj gt nm 0x28ad58 BadStarl prnt 0x28c878 myDescriptor 0x28b658 Causes a core dump deliberately _vptr Oxeee91738 flags nElements 0 val 0x0 plarget 0x28aa60 scp 0x0 ports lt NamedObjList gt lt SequentialList gt lastNode 0x0 dimen 0 states lt NamedObjList gt lt SequentialList gt lastNode 0x0 dimen 0 multiports lt NamedObjList gt lt SequentialList gt lastNode 0x0 dimen 0 indexValue 1 inStateFlag 1 gdb This tells you that a star with name nm BadStar1 and descriptor Causes a core dump deliberately is being invoked This particular star has the following erroneous go method go char p 0 poe fers More elaborate debugging requires that the symbols for the star be included The easiest way to do this is to build a version of pigiRpc debug that includes your star already linked into the system Then repeat the above procedure The bottom of the stack frame will have much more complete information about what is occurring 1 7 3 Debugging hints Below are some hints for debugging e Using emacs gdb and pigi on page 1 26 e Gdb and the environment on page 1 26 e Optimization on page 1 26 e Debugging StringLists in gdb on page 1 26 e How to use ptcl to speed up the compile test cycle on page 1 27 Ptolemy Last updated 10 17
25. fatal error vem keeps running Your vem schematic is unharmed and can be safely saved Vem gives a cryptic error message something like RPC Error server application exited without calling RPCExit Closing Application home ohml users messer ptolemy lib pigiRpcShell on host foucault berkeley edu Elapsed time is 1538 seconds The message segmentation fault core dumped may appear in the window from which you started pigi The first line in the above message might alternatively read RPC Error fread of long failed Vem is trying to tell you that it is unable to get data from the link to the Ptolemy kernel In either case it will create a large file in your home directory called core The co re file is Ptolemy Last updated 10 17 97 1 22 Extending Ptolemy Introduction useful for finding the problem 1 7 1 A quick scan of the stack Assuming you are using Gnu tools and assuming the pigiRpc executable that you are using is in your path go to your home directory and type gdb pigiRpc The Gnu symbolic debugger gdb will show the state of the stack at the point where the pro gram failed Note that gdb is not distributed with Ptolemy but is available free over the Inter net in many places including ftp prep ai mit edu pub gnu The most recently called function might give you a clue about the cause of the problem Here is a typical session cxh watson 197 gdb pigiRpe core GDB is free soft
26. gging There are several ways to build a pigiRpc a There may be prebuilt debug binaries on the Ptolemy Web site check the directory that contains the latest release b Rebuild the entire tree from scratch This takes about 3 hours Appendix A in the Ptolemy User s Manual has instructions about this c Use mkPtolemyTree to rebuild a subset of the Ptolemy tree See Using mkP tolemyTree to create a custom Ptolemy trees on page 1 9 for more information d Use the csh aliases to rebuild a subset of the Ptolemy tree See Using csh aliases to create a Parallel Software Development Tree on page 1 12 for more informa tion The next step is to build the pigiRpc debug binary cd SPTOLEMY obj SPTARCH pigiRpc make pigiRpc debug Then set the PIGIRPC environment variable to point to the binary setenv PIGIRPC PTOLEMY obj S PTARCH pigiRpc pigiRpc debug Then run pigi as follows pigi debug An extra window running gdb appears If this fails then gdb is probably not installed at your 1 Note that the pigi script will attempt to find pigiRpc debug binary if the PIGIRPC environment vari able is not set An alternative is that one can avoid setting PIGIRPC and use the pigi rpc option to specify a binary The command would be pigi debug rpc PTOLEMY obj PTARCH pigiRpc pigiRpc debug Ptolemy Last updated 10 17 97 1 24 Extending Ptolemy Introduction site or is not in your path Type co
27. h DDFLastOfN pl TAGS DDFCase pl DDFRepeater cc ddfstars c DDFDownCounter cc DDFRepeater h ddfstars mk DDFDownCounter h DDFSelf cc make template DDFDownCounter pl DDFSelf h makefile DDFEndCase cc DDFSelf pl Notice that DDFRepeater pl was moved to DDFRepeater pl You can now create your own version of DDFRepeater pl To later reinstate the official version e g you discovered that what you thought was a bug was in fact a feature o sw DDFRepeater pl The exp Alias When starting your experimentation the job of creating the parallel tree can be rather tedious The exp aliases combines the functions of the pt1 and sw aliases into one making the common task of expanding a branch in the directory hierarchy easy Suppose you type o exp stars This is equivalent to the following sequence of commands mkdir stars sw stars cd stars ptl A JP AP o Note that the command leaves you in the new directory ready to issue another exp command For example to create a duplicate of the directory SPTOLEMY src domains ddf stars creating all subdirectories as you go and linking to all the appropriate files in the Ptolemy tree cd Ptolemy exp src exp domains exp ddf exp stars AJP AP AP AP A U C Berkeley Department of EECS The Almagest 1 15 The rm Alias The rm1 alias removes symbolic links in the current directory Without an argument it removes all the visible symbolic links Any
28. irectory under SCCS control or someone else has Then you can create an editable version of the DDFRepeater pl star with the command o sccs edit DDFRepeater pl 1 24 new delta 1 25 76 lines The sccs utility tells you the latest version number 1 24 and assigns you a new version num ber 1 25 You can now edit the file safely nobody else will be allowed by sccs to edit it When you are done and have fully tested your changes and obtained clearance from the Ptolemy group if necessary you can check the file back in o sccs delget DDFRepeater pl comments You should enter an explanation of your changes If you wish to nullify your changes restor U C Berkeley Department of EECS The Almagest 1 19 ing the official version sccs unedit DDFRepeater pl and if you wish to create a new file and put it under SCCS control sccs creat fi NewFileNam 1 6 Building standalone programs that use Ptolemy libraries Sometimes it is necessary to create small standalone programs that use part of the Ptolemy libraries Examples of this are the desire to use Ptolemy kernel classes such as StringList or the need to isolate an obscure bug or memory leak The PTOLEMY mk standalone mk file provides the make definitions to make this possible This file provides make rule definitions to build various binaries some using the Pure Sofware Inc utilities The usage for this makefile is make f SPTOLEMY mk standalone
29. l Ptolemy files and replace them with links that use relative paths to refer to your private versions of these files in case you make changes to them ae exp kernel mkl oe If you make changes in the sdf kernel directory then there is a good chance that object files in sd dsp and other directories will also have to be recompiled Thus you will want to expand these directories and any subdirectories below them as well Remember to replace the make template and makefile links as in the sdf kerne1 directory ae exp dsp mk1 exp stars mk1 oA ol le Because of the way symbolic links work it is important to remove the links for the o and a files in the directories you have just created You can do this by issuing amake realclean command in the obj PTARCH domains sdf directory This will recursively clean out all the subdirectories You could also do this manually by issuing a rml o a command in each directory You will also need a private version of the src directory o9 cd Ptolemy exp src o9 le exp domains exp sdf exp kernel oe o9 At any point after this it is possible to switch back and forth between private and official versions of these directories with the sw alias In fact you just used it as part of the exp alias to switch to the private versions of the obj PTARCH lib PTARCH and src directories To compile your version of the sdf kernel directory ol cd
30. lest thing to do is to replace the line in the makefile install makefile DESTBIN with install makefile pigiRpc This will leave the pigiRpc in whatever directory you make it even if you type make install 1 4 Using mkPtolemyTree to create a custom Ptolemy trees In Ptolemy 0 6 and later there are two methods of building custom Ptolemy trees that have a user selected set of domains csh aliases and the mkPtolemyTree script This section discusses the mkPtolemyTree script see Using csh aliases to create a Parallel Software Development Tree on page 1 12 for an alternative method of creating a parallel tree In Ptolemy 0 6 and later the mkPtolemyTree script and a user supplied over ride mk file to create an entire custom object tree The tree will have copies of all Ptolemy directories on which the customized installation depends The script will also set up the override mk files needed to build custom pigiRpc tysh and ptcl binaries Since mkP tolemyTree runs very fast you may avoid having to recompile the entire Ptolemy tree which can take 3 hours on a fast workstation 1 4 1 mkPtolemyTree example The mkPtolemyt ree command usage is mkPtolemyTree override mk_file root_pathname_of_new_tree For example say that you wanted to build a tree that only has the VHDL domain in mypt 1 One would create a file called override mk that contains VHDL 1 DEFAULT _DOMAIN VHDL Ptolemy
31. mk stars mk_variable_defs file name suffix Where stars mk_variable_defs is zero or more makefile variables used in SPTOLEMY mk stars mk such as SDF 1 filename is the base name of the file to be com piled and the basename of the output file and suffix is one of the forms listed in table 1 1 Suffix Binary Type pein Standard binary debug Binary with debug symbols purify Binary with Purify and debug symbols quantify Binary with Quantify linked in purecov Binary with Pure Coverage linked in TABLE 1 1 Table of filename suffixes and binary types It is possible to use these makefiles to create binaries that do not have any Ptolemy code A reason why you might want to do this is to take advantage of the Pure Software make definitions in standalone mk To specify no Ptolemy libraries use the make argument NOPTOLEMY 1 1 6 1 Standalone example using StringList For example say you want to use the StringList class in a standalone program 1 Rational http www rational com sells tools such as Purify which can be used to find memory leaks and out of bounds memory accesses Quantify which can be used to profile performance Purecov which can be used to provide code coverage information Ptolemy Last updated 10 17 97 1 20 named bar cc include include Str main StringL cout lt lt Extending Ptolemy Introduction ingList h ist testing This is a test n testi
32. ng To build it you would type make f SPTOLEMY mk standalone mk bar bin If you wanted to make a new standalone program that also uses part of the CG domain just define the domain make variables as used in stars mk on the make command line make f SPTOLEMY mk standalone mk CG 1 bar bin If you are going to do this often it may be useful to create a new directory in which to test this program In this directory execute the commands By having these ln s SPTOLEMY mk standalone mk makefile ln s SPTOLEMY mk standalone mk make template symbolic links you will not have to supply the make argument f SPTOLEMY mk standalone mk as before 1 6 2 Standalone example that tests a Scheduler Here is an example of a minimal file that can be used to call the setup in a Scheduler for instance If the file test AcyLoopSched cc contains include lt iostream h gt include Galaxy h include SDF Star h include AcyCluster h include Acy include SDF main Firs SDFStar Galaxy LoopScheduler h PortHole h t create a simple galaxy and some stars star 3 topGalaxy topGalaxy setDomain SDF topGalaxy setName topGalaxy topGalaxy addBlock star 0 star0 topGalaxy addBlock star 1 starl topGalaxy addBlock star 2 star2 Add ports to stars OutSDFPort p0 pl InSDFPo Tt p23 initialize the ports pO setPort outputl1 amp star
33. nt to continue past the initial breakpoint Now if you can replicate the situation that created the crash you will be able to get more information about what happened Here is a sample of interaction with the debugger through the gdb window GDB is free software and you are welcome to distribute copies of it under certain conditions type show copying to see the conditions There is absolutely no warranty for GDB type show warranty for details GDB 4 15 1 sparc sun solaris2 4 Copyright 1995 Free Software Foundation Inc Breakpoint 1 at 0x39ab4 file src pigiExample pigiMain cc line 58 Breakpoint 1 main argc 282850408 argv 0x399c0 at src pigiExample pigiMain cc 58 58 pigiFilename argv 0 gdb cont Continuing At this point you are running Ptolemy Use it in the usual way to replicate your problem When you succeed you will get a message something like Program received signal SIGSEGV Segmentation fault Oxeee81394 in mxRealMax gdb At this point you can again examine the stack This time however there will be more infor mation Here we examine the top 5 frames of the stack gdb where 5 0 Oxeee81394 in mxRealMax 1 Oxe3864 in SimControl getPollFlag at src kernel SimCon Erol ce 271 2 Oxe3e5c in Star run this 0x28c908 at src kernel Star cco 73 3 Oxbacb8 in DataFlowStar run this 0x28c908 at src kernel DataFlowStar cc 94
34. rrent directory For more information see the Gnu make documentation in Gnu Info format files in SPTOLEMY gnu common info make SPTOLI FIGURE 1 2 U C Berk EMY src eley compat domains filters gnu kernel octtools pigiExample pigiRpe pigilib prc ptklib ptlang pxgraph tcltk thread tycho utils XV header files for non standard configurations the code for each of the domains outside filter design programs source for Gnu tools optional the Ptolemy kernel source for our subset of the Berkeley oct tools example showing how to make a custom pigi source for pigiRpc program source for most of pigi source for ptcl some Tcl Tk code used in various places source for the preprocessor for star writing source code for the pxgraph program source for Tcl and Tk optional code used by the PN domain source for the tysh Tycho Ptolemy binary external software package interface libraries image viewer sources optional The structure of the PTOLEMY src directory Department of EECS The Almagest 1 5 There are three primary Ptolemy binaries pigiRpe The graphical version that uses vem as a front end pigiRpc contains an interface to Octtools the package that is used to store facets When you run pigi you actually run a script called SPTOLEMY bin pigiEnv csh which calls vem which in turn starts up pigiRpc piel A prompt version that contains most
35. s 0x2bd050 at src domains sdf kernel SDFScheduler cc 121 13 OxeecaOeac in SDFScheduler run this 0x2bd050 at src domains sdf kernel SDFScheduler cc 98 1 Note that core files can be large in size so your system administrator may have setup the csh limit command to disable the creation of core files For further information see the csh man page U C Berkeley Department of EECS The Almagest 1 23 14 0x108358 in Target run 15 0x109e04 in Runnable run 16 Oxe62ec in InterpUniverse run 17 Oxee9e7f04 in PTcl run this 0x20af80 argc 2949528 argv 0x109fa4 at src ptcl PTcl ce 521 18 Oxee9e99a4 in PTcl dispatcher which 0x27 interp 0x1d4830 argc 2 The where command shows that state of the stack at the time of the crash The actual stack trace was 72 frames long the last two frames being 71 OxeecO06d5c in ptkMainLoop at src pigilib ptkTkSetup c 192 72 0x4982c in main Scanning this list we can recognize that the crash occurred during the execution of a star Unfortunately unless you are running a version of pigiRpc with the debug symbols loaded it will be difficult to tell much more from this 1 7 2 More extensive debugging To do more extensive debugging you need to create or find a version of pigiRpc with debug symbols called pigiRpc debug The first step is to build a pigiRpc that contains the domains you are interested in debu
36. s direc tory Its structure is shown in figure 1 3 This directory contains one subdirectory that defines each of the domains distributed with Ptolemy Each domain directory contains at least the sub directories shown in figure 1 4 If you are going to write stars for the SDF domain for exam ple then you would be well advised to look at a few examples contained in the directory PTOLEMY src domains sdf stars The directory PTOLEMY mk contains master makefiles that are included by other makefiles The makefile include directive does this for us SPTOLEMY mk config SPTARCH mk refers to the makefile for the architecture SPTARCH For instance PTOLEMY mk config sun4 mk is the makefile that contains the sun4 specific details bin platform independent executables bin SPTARCH platform dependent executables demo top level demo directory with pointers to demos in src doc documentation including this manual in PostScript lib platform independent run time libraries SPTOLEMY lib SPTARCH platform dependent libraries used for linking mk shared portions of makefiles obj SPTARCH object files this appears when Ptolemy is recompiled octtools a subset of the Berkeley octtools used by pigi sre root of the source tree includes all demos and icons tcltk the installation of Tcl and Tk used by pigi tycho the Ptolemy syntax manager FIGURE 1 1 Structure of the home directory of the Ptolemy installation GSPTOLEMY
37. scellaneous debugging hints for gdb If you are having problems debugging with gdb here s what to check 1 Verify that your SPTOLEMY is set to what you intended If you are building bina ries in your private tree be sure that SPTOLEMY is set to your private tree and not ptdesign or users ptolemy 2 Verify that your LD_LIBRARY_PATH does not include libraries in another Ptolemy tree You could type unsetenv SLD_LIBRARY_PATH 3 gdb sources your cshrc so your SPTOLEMY and LD_LIBRARY_PATH could be different Inside gdb use show env PTOLEMY to see what it is set to This problem is especially common if you are running gdb inside emacs via ptgdb 4 Verify that you are running the right binary by looking at the creation times You may find it useful to use the rpc option pigi debug rpc S PTOLEMY obj SPTARCH pigiRpc pigiRpc mine ptdesign init pal 5 Recompile the problem files with optimization turned off and relink your pigiRpc You can do this with rm myfile o make OPTIMIZER install Then rebuild your pigiRpc 6 Look for weird coding styles that could confuse the line count in emacs and gdb such as declaring variables in the middle of a block and brackets that open a func tion body on the same line as the function declaration int foo int bar VS int foo int bar 7 Use stepi to step by instructions rather than step U C Berkeley Department of EECS
38. set your PTOLEMY environment variable to this new tree and pigi will run your custom pigiRpc binary Currently the Tcl libraries and Tycho are not expanded but are accessible via symbolic links To have the utility expand the SPTOLEMY 1ib tc1 directory add the following line to your override mk file CUSTOM_DIRS CROOT lib tcl To expand Tycho consult the Tycho documentation and use the tylndir script There is no documentation of the variables to pull in each domain yet In general it is the standard abbreviation for the domain in capital letter For example the Synchronous Data flow SDF domain is SDF the Discrete Event DE domain is DE and so forth Some of the domains are split up the entire domain can be brought in by defining FOOFULL e g SDF FULL or CGCFULL When defined they include all of the SDF and CGC functionality respectively whereas SDF and CGC include only the basic functionality The basic version of the SDF domain does not include the image matrix Matlab DSP and Tcl Tk stars If you are attempting to build a pigi that includes the Process Network PN domain then you should add the following to your override mk file INCLUDE_PN_DOMAIN yes For a listing of the possible make variables refer to the PTOLEMY mk ptbin mk and SPTOLEMY mk stars mk files 1 4 3 Combining mkPtolemyTree and pigiExample It is possible to use the override mk file used by mkPtolemyTree in the pigiEx
39. t them here The User s Manual also documents other useful environment variables such as LD_LIBRARY_PATH For every directory under the src tree see figure 1 2 that contains source code that is compiled there is a corresponding directory under the obj PTARCH tree Many developers find it convenient to set the following aliases alias srcdir cd pwd sed s obj SPTARCH src alias objdir cd pwd sed s src obj SPTARCH gt For your convenience these can be found in the file SPTOLEMY alias They make it easy to move between the source directory and the corresponding object directory For example if you are running on a Sun machine running Solaris 2 4 U C Berkeley Department of EECS The Almagest 1 3 ae cd PTOLEMY src kernel pwd users ptolemy src kernel objdir pwd users ptolemy obj sol2 kernel srcdir pwd users ptolemy src kernel AP WP AP NX oe ole 1 2 2 Directory Structure The documentation usually refers to the root of the Ptolemy directory tree as SPTOLEMY but occasional slips will refer to ptolemy Below this root you can find the directories indicated in figure 1 1 The src directory is key to much of what this volume deals with Its structure is shown in figure 1 2 Within the src directory the kernel directory is most important It con tains all the classes that define what Ptolemy is Second most important is the domain
40. to files that are only run when you sign on such as login or profile Optimization By default Ptolemy is compiled with the optimizer turn up to a very high level This can result in strange behavior inside the debugger as the compiler may evaluate instructions in a different order than they appear in the source file You may find it easier to debug a file by recompiling it with the optimization turned off by removing the corresponding o file and doing make OPTIMIZER install Debugging StringLists in gdb Ptolemy uses StringList object to manipulate strings However using gdb to view U C Berkeley Department of EECS The Almagest 1 27 a StringList object can be non intuitive To print the contents of a Stringlist myStringList as one item per line from within gdb use p displayStringListItems myStringList To print out the St ringList as a contiguous string use p displayStringList myStringList How to use ptcl to speed up the compile test cycle If you are spending a lot of time debugging a problem you may want to use ptcl instead of pigiRpc as ptcl is smaller and starts up faster Also you can keep your break points between invocations of ptcl as debugging ptc1 does not start up a separate emacs each time However ptcl1 cannot handle demos that use Tk Here s how to use ptc1 to debug 1 Ptolemy Run pigiRpc on the universe and use compile facet to generate a pigi
41. un in separate Unix processes The Ptolemy kernel process is called pigiRpc while the vem process is called vem You can create your own version of pigiRpc that contains your stars and other extensions perma nently linked in There are at least three ways to build your own pigiRpc depending on the kind of extensions you are making The first way uses src pigiExample and it is intended for users who just need to add new stars The second and third ways use the mkPtolemyTree script and csh aliases and are for users that are creating new domains or making other more extensive changes If you want to extend Ptolemy by modifying or adding a new scheduler target or even an entire domain it is recommended that you create a duplicate directory hierarchy This allows you to experiment with and fully test any changes separately rather than incorporating them into the official version of Ptolemy This way your experimentation will not interfere with other Ptolemy users at your site and your changes will not be overwritten by future installations of Ptolemy releases It also means that all of the existing makefiles will work without modification because all of the paths specified are relative to the root of the hierarchy The most direct way to do this is to copy the entire Ptolemy hierarchy This could be done with a command such as cp r SPTOLEMY ptolemy which would create a copy of the hierarchy in your home directory Be
42. ure that you have your environment set up properly for the com piler that you are using Continuing with our example of how to build a pigiRpc that includes your own stars 1 Build a basic pigiRpc PigiRpc depends on o files under PTOLEMY obj PTARCH so you must do a basic build To build all the o files type cd SPTOLEMY make install The complete build process can take upwards of three hours If you use an over ride mk file you can reduce the build time by building only the functionality you need See Using mkPtolemyTree to create a custom Ptolemy trees on page 1 9 for more information 2 Edit SPTOLEMY src pigiExample make template Add your stars to LOCAL_OBJS and PL_SRCS 3 cd to SPTOLEMY obj SPTARCH pigiExample and type make depend to update the makefile from the make template You will see messages some thing like Ptolemy Last updated 10 17 97 Extending Ptolemy Introduction makefile remad you must rerun make exit 1 make makefile Error 1 This is normal and you may safely ignore the error message While still in SP TOL make EMY obj PTARCH pigil Example type This will create a version of the pigiRpc executable with your own stars statically linked in If later you add a new star you should modify the symbols 01 PLSRCS in make template to include it and repeat the above procedure starting up with pigi rpc PTO
43. ware and you are welcome to distribute copies of it under certain conditions type show copying to see the conditions There is absolutely no warranty for GDB type show warranty for details GDB 4 15 1 sparc sun solaris2 4 Copyright 1995 Free Software Foundation Inc no debugging symbols found Tell gdb to read in the core file gdb core core Core was generated by users ptolemy bin sol2 pigiRpe 0 0 wat son eecs berkeley edu 32870 inet 1 2 3 Program terminated with signal 11 Segmentation fault Reading symbols from users ptolemy lib sol2 libcg56dspstars so done Reading symbols from users ptolemy lib sol2 libcg56stars so done Since this version of Ptolemy uses shared libraries we see lots of messages about shared libraries which we ve deleted here for brevity gdb where 0 Oxee7alc20 in _kill 1 Ox52b04 in pthread_clear_sighandler 2 Ox52cbh4 in pthread_clear_sighandler 3 0x53130 in pthread_clear_sighandler 4 0x53320 in pthread_handle_one_process_signal 5 0x55658 in pthread_signal_sched 6 0x554d8 in called_from_sighandler 7 Ox535e4 in pthread_handle_pending_signals 8 0x10100c in SimControl getPollFlag 9 0x101604 in Star run 10 O0xd394c in DataFlowStar run 11 Oxeeca5fb8 in SDFAtomCluster run this 0x2bd0b0 at src domains sdf kernel SDFCluster cc 1032 12 Oxeeca0Of20 in SDFScheduler runOnce thi
Download Pdf Manuals
Related Search
Related Contents
漁網監視装置用センサー - 水産総合研究センター in Appendix A PDF:10.1MB Copyright © All rights reserved.
Failed to retrieve file