comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Where is my function called
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Where is my function called [message #62085] Mon, 25 August 2008 10:05 Go to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Bennett writes:

> No idea if these may work for you but the scope_traceback() function
> seems to have some capability....whether or not it completely fits
> your needs I don't know.

Now that I think about it, this problem probably does
result in the build order of the project. I've given
up on building projects a long time ago, which is why
the problem didn't ring a bell with me at first.

Rather, I start a fresh IDL session. Run my program.
Then do a RESOLVE_ALL. I *do* have to provide a list
of all the objects my project is going to need using
this method, because RESOLVE_ALL usually doesn't do
any such thing. But, the advantage of the method is
that with well-named programs, I don't have to constantly
fight build order problems, which are ESPECIALLY
pernicious when you are trying to get someone else to
compile your damn programs. A customer, for example.

I usually provide a "make" program to "build" the project
for my customer. It's pretty simple, as I say. The only
tricky part is including all the objects the program
needs in the CLASS keyword to RESOLVE_ALL:

;; MakeProjectScript
.RESET_FULL_SESSION
myprojectProgram
RESOLVE_ALL, CLASS=['FSC_PSCONFIG', 'PROGRESSBAR']
Save, /ALL, FILE='myprojectprogram.sav'
END

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: Where is my function called [message #62086 is a reply to message #62085] Mon, 25 August 2008 09:23 Go to previous messageGo to next message
Juggernaut is currently offline  Juggernaut
Messages: 83
Registered: June 2008
Member
On Aug 25, 8:31 am, David Fanning <n...@dfanning.com> wrote:
> Wox writes:
>> Does anyone know how I can find out where a specific
>> function/procedure is called in a project. I'm having build order
>> problems: it's a mess. My idea was to use ROUTINE_INFO to get the
>> names and files of the (user) routines in my project (2000 routines in
>> 35 files) and then try to visualize the connections so I can order
>> things.
>
> Good luck! I think it would be easier to just name your
> files correctly. :-)
>
> http://www.dfanning.com/tips/namefiles.html
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.dfanning.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")

No idea if these may work for you but the scope_traceback() function
seems to have some capability....whether or not it completely fits
your needs I don't know.
Re: Where is my function called [message #62087 is a reply to message #62086] Mon, 25 August 2008 05:31 Go to previous messageGo to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Wox writes:

> Does anyone know how I can find out where a specific
> function/procedure is called in a project. I'm having build order
> problems: it's a mess. My idea was to use ROUTINE_INFO to get the
> names and files of the (user) routines in my project (2000 routines in
> 35 files) and then try to visualize the connections so I can order
> things.

Good luck! I think it would be easier to just name your
files correctly. :-)

http://www.dfanning.com/tips/namefiles.html

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: Where is my function called [message #62158 is a reply to message #62085] Tue, 26 August 2008 01:46 Go to previous message
Wox is currently offline  Wox
Messages: 184
Registered: August 2006
Senior Member
On Mon, 25 Aug 2008 11:05:08 -0600, David Fanning <news@dfanning.com>
wrote:

<snip>
> I usually provide a "make" program to "build" the project
> for my customer. It's pretty simple, as I say. The only
> tricky part is including all the objects the program
> needs in the CLASS keyword to RESOLVE_ALL:
>
> ;; MakeProjectScript
> .RESET_FULL_SESSION
> myprojectProgram
> RESOLVE_ALL, CLASS=['FSC_PSCONFIG', 'PROGRESSBAR']
> Save, /ALL, FILE='myprojectprogram.sav'
> END
>
> Cheers,
>
> David

What I was doing for now was having a start.pro file:
-----------------------
@filex
@filey
...
@myprojectProgram

pro start
myprojectProgram
end
-----------------------

And then make a batchfile compile.pro:
-----------------------
.RESET_FULL_SESSION
.Compile start.pro
Resolve_All,class=['Trackball',...]
-----------------------

"IDL> @compile" would compile the project and "IDL> start" would run
it. The files filex,filey,... contain many routines. The crucial point
is ordening the @filex,@filey,...(35 files for now) in the start.pro
file and deviding the ~2000 routines I have over a manageable amount
of files (since each file would need a line in start.pro).

I was reading your naming rules. I put too many routines in one file.
In order to resolve this problem without looking at the routines
manually, I was looking for something like the scope_traceback
function (thx for the sugggestion) but for this I have to call all the
routines and procedures manually and for each build a calling tree
(with scope_traceback) and afterwards merge all this calling trees. Is
there a way of automating this?
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Having trouble stopping a loop (or loop de loop de loop)
Next Topic: Re: Umlauts in IDL 6.0 and 7.0

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 17:25:09 PDT 2025

Total time taken to generate the page: 0.00419 seconds