Call Chain

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 | Next >

Call Chain

by Jacques Chatenay-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Is there any way to get the call chain to a method I would like to be
able to get the name of the method that called the current method but
if I could retrieve the entire call chain to the method that would
even be better.

Is this possible

Thanks

Jack
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Peter Schumacher-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

...me too !

Am 12.11.2009 um 10:10 schrieb Jacques Chatenay:

> Is there any way to get the call chain to a method I would like to be
> able to get the name of the method that called the current method but
> if I could retrieve the entire call chain to the method that would
> even be better.

Greetings,
[4D-Consulting.com]eK, Wiesbaden (Germany)
Peter Schumacher
--------------------------------------------------------
Web: http://www.4D-Consulting.com/
FreeCall:  0800-434 636 7
Tel.:      +49-611-9406.850 - Fax: +49-611-9406.744
4D-Consulting.com eK - Scharnhorststr. 36 - 65195 Wiesbaden
Member of the German Developer Network  http://www.die4dwerkstatt.de









**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Jody Bevan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jack:

For each process we created an array that gets updated with the call  
chain. On starting a method, we add the method called to the array.  
When the method ends, we remove it from the array.

We have this in a setting that we can turn on / off so that we only do  
this when we need to do some debugging. It can be a very powerful  
debugging tool.

Jody


On Nov 12, 2009, at 10:10 AM, Jacques Chatenay wrote:

> Is there any way to get the call chain to a method I would like to be
> able to get the name of the method that called the current method but
> if I could retrieve the entire call chain to the method that would
> even be better.
>
> Is this possible
>
> Thanks
>
> Jack
> **********************************************************************
> Get up to $600 to spend on Amazon.com
> this holiday season - http://www.4d.com/serverpromo.html
>
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************


========================================================
If you don't like something, change it. If you can't change it, change  
your attitude. Don't complain.    -    Maya Angelou





Developers of JonokeMed™, FaxButler™, ImageButler™, WebButler™, J-
Forms™, and J-Jump™

Jody Bevan                            Jonoke Software Dev. Inc.
President                                info@...
3450 - 78 Ave         www.jonoke.com
Edmonton, AB                       (800) 254-0739
Canada    T6B 2X9               (780) 448-3647 ext 2234

This message and any files transmitted with it are confidential and  
solely for the use of the intended recipient. If you are not the  
intended recipient or the person responsible for delivering to the  
intended recipient, be advised that you have received this message in  
error and that any use is expressly prohibited.
P please consider the environment before printing this email P  
Veuillez songer à l’environnement avant d’imprimer ce courriel

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Atanas Atanassov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Jacques,


Look at this tech tip : http://kb.4d.com/search/assetid=50154
It shows how to get method callers

Hope this help.


On Nov 12, 2009, at 9:10 AM, Jacques Chatenay wrote:

> Is there any way to get the call chain to a method I would like to be
> able to get the name of the method that called the current method but
> if I could retrieve the entire call chain to the method that would
> even be better.
>
> Is this possible
>

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Jacques Chatenay-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you for your reply I knew that and use it all the time.

 I apologize I was not clear in what I am wanting to accomplish  I
would like to find the method call chain at runtime I have some error
handling going on that gathers information and sends me an e-mail when
something unexpected happens.  I use "Current method name" "PROCESS
PROPERTIES" etc to get information to include in the email and I
wanted to include the method that called the current method  or better
yet the entire call chain but I can not find a way to get that
information at runtime

Jack

On Thu, Nov 12, 2009 at 1:21 PM, Atanas Atanassov <aatanassov@...> wrote:

> Hi Jacques,
>
>
> Look at this tech tip : http://kb.4d.com/search/assetid=50154
> It shows how to get method callers
>
> Hope this help.
>
>
> On Nov 12, 2009, at 9:10 AM, Jacques Chatenay wrote:
>
>> Is there any way to get the call chain to a method I would like to be
>> able to get the name of the method that called the current method but
>> if I could retrieve the entire call chain to the method that would
>> even be better.
>>
>> Is this possible
>>
>
> **********************************************************************
> Get up to $600 to spend on Amazon.com this holiday season -
> http://www.4d.com/serverpromo.html
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************
>
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Parent Message unknown Re: Call Chain

by David Lieb :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Unfortunately, I don't think so. It would be super-useful for debugging and
who knows what else.

David

On Thu, Nov 12, 2009 at 1:41 PM, Jacques Chatenay wrote:

>    Is there any way to get the call chain to a method I would like to be
> able to get the name of the method that called the current method but
> if I could retrieve the entire call chain to the method that would
> even be better.
>
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Jeff Grann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This would be very useful, but I think you have to roll your own  
using a stack.  At the top of every method, push the current method  
name, and then pop it at the end of the method.

-----
Jeff Grann
SuccessWare, Inc.

On Nov 12, 2009, at 12:10 PM, Jacques Chatenay wrote:

> Is there any way to get the call chain to a method I would like to be
> able to get the name of the method that called the current method but
> if I could retrieve the entire call chain to the method that would
> even be better.
>
> Is this possible

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

RE: Call Chain

by David Ringsmuth-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jacques,

I wrote my own "CallChain" by manually inserting a CallChain(1;Current
Method name) at the top of every method and a CallChain(0;Current Method) at
the bottom of every method. The method manages a process variable stack of
the Call Chain.

I also wrote a similar one for Forms so that by process I could track the
Call Chain throughout form drilling.

Hth,
David Ringsmuth

-----Original Message-----
From: 4d_tech-bounces@... [mailto:4d_tech-bounces@...] On
Behalf Of Jacques Chatenay
Sent: Thursday, November 12, 2009 1:33 PM
To: 4D iNug Technical
Subject: Re: Call Chain

...  I
would like to find the method call chain at runtime I have some error
handling going on that gathers information and sends me an e-mail when
something unexpected happens.  I use "Current method name" "PROCESS
PROPERTIES" etc to get information to include in the email and I
wanted to include the method that called the current method  or better
yet the entire call chain but I can not find a way to get that
information at runtime

Jack

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Jacques Chatenay-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you David

That will work nicely

Jack

On Thu, Nov 12, 2009 at 2:33 PM, David Ringsmuth <davidinug@...> wrote:

> Jacques,
>
> I wrote my own "CallChain" by manually inserting a CallChain(1;Current
> Method name) at the top of every method and a CallChain(0;Current Method) at
> the bottom of every method. The method manages a process variable stack of
> the Call Chain.
>
> I also wrote a similar one for Forms so that by process I could track the
> Call Chain throughout form drilling.
>
> Hth,
> David Ringsmuth
>
> -----Original Message-----
> From: 4d_tech-bounces@... [mailto:4d_tech-bounces@...] On
> Behalf Of Jacques Chatenay
> Sent: Thursday, November 12, 2009 1:33 PM
> To: 4D iNug Technical
> Subject: Re: Call Chain
>
> ...  I
> would like to find the method call chain at runtime I have some error
> handling going on that gathers information and sends me an e-mail when
> something unexpected happens.  I use "Current method name" "PROCESS
> PROPERTIES" etc to get information to include in the email and I
> wanted to include the method that called the current method  or better
> yet the entire call chain but I can not find a way to get that
> information at runtime
>
> Jack
>
> **********************************************************************
> Get up to $600 to spend on Amazon.com
> this holiday season - http://www.4d.com/serverpromo.html
>
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************
>
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Parent Message unknown RE: Call Chain

by David Lieb :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Nov 12, 2009 at 4:31 PM, David Ringsmuth wrote:

> I wrote my own "CallChain" by manually inserting a CallChain(1;Current
> Method name) at the top of every method and a CallChain(0;Current Method)
> at
> the bottom of every method. The method manages a process variable stack of
> the Call Chain.
>

Hi David R,

Have you found any performance penalty for that when executing? It seems
like a bit of a pain to maintain, although you can use macros to
automatically insert it for new methods.

What about components, in particular when the call chain includes both host
and component methods? Have you dealt with that?

Thanks,

David L.
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

RE: Call Chain

by David Ringsmuth-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

David L,

The CallChain Stack is extremely fast, but I would consider eliminating it
from a tiny method that is called zillions of time during a process.

The purpose of my CallChain was for debugging and user support. I've been
using the CallChain for years and storing the chain in my Logs which I keep
for many functions the user does.

They have been very helpful providing support, and debugging.

There has never been a noticeable performance hit.

Using an Array as the Stack, Append to Array and Delete from Array, the
logic is very basic.

The products I support use multiple components. They do not have the
CallChain in their methods.

The process variable aCallChain is initialized at the beginning of each new
process.

Components can be written to test for the existence of aCallChain, and
Append/Delete accordingly.

David Ringsmuth

-----Original Message-----
From: 4d_tech-bounces@... [mailto:4d_tech-bounces@...] On
Behalf Of David Lieb
Sent: Thursday, November 12, 2009 3:53 PM
To: 4d_tech@...
Subject: RE: Call Chain

On Thu, Nov 12, 2009 at 4:31 PM, David Ringsmuth wrote:

> I wrote my own "CallChain" by manually inserting a CallChain(1;Current
> Method name) at the top of every method and a CallChain(0;Current Method)
> at
> the bottom of every method. The method manages a process variable stack of
> the Call Chain.
>

Hi David R,

Have you found any performance penalty for that when executing? It seems
like a bit of a pain to maintain, although you can use macros to
automatically insert it for new methods.

What about components, in particular when the call chain includes both host
and component methods? Have you dealt with that?

Thanks,

David L.

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Nigel Greenlee :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jacques/David L

I (or should I say we as Balinder Walia, Kevin WIlliams, Pat Bensky and Rollo Carpenter all contributed bits over the years) too wrote a call chain stack handler.

We went 'beyond' what most have done here, but it sounds like David R has done pretty much the same kind of thing as we did.  As well as popping the method name onto the stack(I don't recommend using CURRENT METHOD NAME as it requires(or did) range checking to be kept on which hits the performance of your system), we also gave capability to turn on tracking which would record the stack out to a document so when things went CABOOM (thats an official terminology) we would Know where and how we got there, and later added on an on-screen debugger that would flash up the stack calls  put it on the clipboard, and make it possible to bring that up at any time during the running of the programme. It has saved me 100s of hours i reckon in identifying the causes of errors.

I can also agree with David Ringsmith about the recursive calls as that is a potential issue that can have a negative impact on performance.

The nature of the handler also meant we could additional calls in lines of the code to track the behaviour of the code in the compiled system.

It would have been hard work putting the handler method at the top of every form method and project method..we did this back in 4D 2003 and used Dynamic Structure to take care of that for us...which probably saved a few hundred hours in itself.

I highly recommend that you write something like this for yourself and create a macro to put the calls into your method from the start of any project.



On 12 Nov 2009, at 22:55, David Ringsmuth wrote:

> David L,
>
> The CallChain Stack is extremely fast, but I would consider eliminating it
> from a tiny method that is called zillions of time during a process.
>
> The purpose of my CallChain was for debugging and user support. I've been
> using the CallChain for years and storing the chain in my Logs which I keep
> for many functions the user does.
>
> They have been very helpful providing support, and debugging.
>
> There has never been a noticeable performance hit.
>
> Using an Array as the Stack, Append to Array and Delete from Array, the
> logic is very basic.
>
> The products I support use multiple components. They do not have the
> CallChain in their methods.
>
> The process variable aCallChain is initialized at the beginning of each new
> process.
>
> Components can be written to test for the existence of aCallChain, and
> Append/Delete accordingly.
>
> David Ringsmuth
>
> -----Original Message-----
> From: 4d_tech-bounces@... [mailto:4d_tech-bounces@...] On
> Behalf Of David Lieb
> Sent: Thursday, November 12, 2009 3:53 PM
> To: 4d_tech@...
> Subject: RE: Call Chain
>
> On Thu, Nov 12, 2009 at 4:31 PM, David Ringsmuth wrote:
>
>> I wrote my own "CallChain" by manually inserting a CallChain(1;Current
>> Method name) at the top of every method and a CallChain(0;Current Method)
>> at
>> the bottom of every method. The method manages a process variable stack of
>> the Call Chain.
>>
>
> Hi David R,
>
> Have you found any performance penalty for that when executing? It seems
> like a bit of a pain to maintain, although you can use macros to
> automatically insert it for new methods.
>
> What about components, in particular when the call chain includes both host
> and component methods? Have you dealt with that?
>
> Thanks,
>
> David L.
>
> **********************************************************************
> Get up to $600 to spend on Amazon.com
> this holiday season - http://www.4d.com/serverpromo.html
>
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************



nigel.greenlee@...
 www.cleardaysoftware.com
 Tel: +44 (0)1296 330633 Mob: +44 (0)7711 985095




**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Justus Janssen - 4Dnug :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi David,

David Ringsmuth wrote:

> David L,
>
> The CallChain Stack is extremely fast, but I would consider eliminating it
> from a tiny method that is called zillions of time during a process.
>
> ...
>
> There has never been a noticeable performance hit.
>
> Using an Array as the Stack, Append to Array and Delete from Array, the
> logic is very basic.
>
 > ...

are you indeed using "INSERT ELEMENT" and "DELETE ELEMENT" for this, or
is the description you gave here a mere simplification of things? The
reason I ask, is that we've experienced severe performance penalties
using this approach, hence we've written a call-stack method with an
array that has an initial size of 100 (and is resized in chunks, if
needed) and uses an index to track the current method. Resizing arrays
is very memory inefficient, at least for large arrays.

--
Arpa, Veldhoven, Netherlands
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Jacques Chatenay-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Based on the feed back here I have written a very simple call chain
tracking system that seems to work quit well. I want to thank all of
you for your input. It sounds like some of you written some really
cool tracking systems that go far beyond what I had ever dreamed of my
hat is off to you.

Jack

On Thu, Nov 12, 2009 at 11:54 AM, Peter Schumacher
<plist@...> wrote:

> ...me too !
>
> Am 12.11.2009 um 10:10 schrieb Jacques Chatenay:
>
>> Is there any way to get the call chain to a method I would like to be
>> able to get the name of the method that called the current method but
>> if I could retrieve the entire call chain to the method that would
>> even be better.
>
> Greetings,
> [4D-Consulting.com]eK, Wiesbaden (Germany)
> Peter Schumacher
> --------------------------------------------------------
> Web: http://www.4D-Consulting.com/
> FreeCall:  0800-434 636 7
> Tel.:      +49-611-9406.850 - Fax: +49-611-9406.744
> 4D-Consulting.com eK - Scharnhorststr. 36 - 65195 Wiesbaden
> Member of the German Developer Network  http://www.die4dwerkstatt.de
>
>
>
>
>
>
>
>
>
> **********************************************************************
> Get up to $600 to spend on Amazon.com this holiday season -
> http://www.4d.com/serverpromo.html
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************
>
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by David Nasralla :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,

I was wondering if anyone tracks what objects were clicked on -
meaning do you also put the CallChain tracking in all you buttons and
listboxes,etc. - or do you simple not put code directly in objects,
and have the objects call a single method instead (and there-by
tracking it.)

dave

(BTW - Thanks to everyone that has contributed to this discussion. )

--
David Nasralla
Clean Air Engineering
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html
   

4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Parent Message unknown Re: Call Chain

by Ortwin Zillgen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

yespleasethanksalot

> ...me too !
>
> Am 12.11.2009 um 10:10 schrieb Jacques Chatenay:
>
>> Is there any way to get the call chain to a method I would like to be
>> able to get the name of the method that called the current method but
>> if I could retrieve the entire call chain to the method that would
>> even be better.



Regards
Ortwin Zillgen
___________________________________________________
Stadt Land Fluß * Geographic Informationsystems
<mailto:info@...>   <http://dddd.mettre.de?4713>
RSS <feed://dddd.mettre.de/dddd.xml>
RSS <feed://dddd.mettre.de/f/DDDD_Links.xml>



**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Parent Message unknown Re: Call Chain

by Ortwin Zillgen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


> … or do you simple not put code directly in objects,
> and have the objects call a single method instead

everything else is a nightmare to debug and maintain


Regards
Ortwin Zillgen
___________________________________________________
Stadt Land Fluß * Geographic Informationsystems
<mailto:info@...>   <http://dddd.mettre.de?4713>
RSS <feed://dddd.mettre.de/dddd.xml>
RSS <feed://dddd.mettre.de/f/DDDD_Links.xml>



**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by David Dancy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Coincidentally, I have been putting some flourishes (if I do say so
myself) on a generic code-profiling system that produces output like
this:

2009-11-13 12:51:37         23     0     1 Application process
                CONFIG_GetProperty ( "Version", ->$DataVersion_r )
2009-11-13 12:51:37         26     0     1 Application process
                | _DOM_Decode4DVar ( "09D1BA680F7C3380",
"Property/Value", ->$DataVersion_r )
2009-11-13 12:51:37         30     0     1 Application process
    [          8] CONFIG_GetProperty
2009-11-13 12:51:37         31     0     1 Application process
                _ABOUT_Credits (  )
2009-11-13 12:51:37         33     0     1 Application process
                _ABOUT_Logo (  )
2009-11-13 12:51:37         34     0     1 Application process
                _ABOUT_Support (  )
2009-11-13 12:51:37         36     0     1 Application process
                CONTROLPANEL_Open (  )
2009-11-13 12:51:37         58     0     1 Application process
                | CONTROLPANEL_FormMethod ( 1, ->NIL )
2009-11-13 12:51:37         62     0     1 Application process
    [         26] CONTROLPANEL_Open
2009-11-13 12:51:38       1200     0     1 Application process
                CONTROLPANEL_FormMethod ( 4, ->CMD_MenuButton2 )
2009-11-13 12:51:38       1201     0     1 Application process
                | CONTROLPANEL_Execute ( "TEACHER_Edit" )
2009-11-13 12:51:38       1210     0     1 Application process
                | | TEACHER_Edit ( 0 )
2009-11-13 12:51:38       1213     0     1 Application process
                | | | _DIALOG ( ->[Teacher], "Edit",
"TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
2009-11-13 12:51:38       1216     0     1 Application process
                | | | | _INPUT_FORM ( ->[Teacher], "Edit",
"TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
2009-11-13 12:51:38       1255     0     1 Application process
                | | | | _INPUT_FORM_METHOD ( ->[Teacher], 1, ->NIL,
False )
2009-11-13 12:51:38       1256     0     1 Application process
                | | | | | _TRANS_Begin ( "_INPUT_FORM_METHOD" )
2009-11-13 12:51:38       1259     1     1 Application process
                | | | | | _INPUT_FORM_CALLBACK ( 2, 1, ->NIL )
2009-11-13 12:51:38       1260     1     1 Application process
                | | | | | | TEACHER_Edit_FormMethod ( 1, ->NIL )
2009-11-13 12:51:38       1262     1     1 Application process
                | | | | | | | RULE_LoadPersonTitles (
->TEACHER_Title_at )
2009-11-13 12:51:38       1263     1     1 Application process
                | | | | | | | | _ARRAY_Resize ( ->TEACHER_Title_at,
0 )
2009-11-13 12:51:38       1265     1     1 Application process
                | | | | | | | | _APPEND_TO_TEXT_ARRAY (  )
2009-11-13 12:51:38       1266     1     1 Application process
    [          5] | | | | | | | RULE_LoadPersonTitles
2009-11-13 12:51:38       1268     1     1 Application process
                | | | | | | | TEACHER_StudentArrays ( 0 )
2009-11-13 12:51:38       1269     1     1 Application process
                | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
2009-11-13 12:51:38       1270     1     1 Application process
                | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
2009-11-13 12:51:38       1271     1     1 Application process
    [          4] | | | | | | | TEACHER_StudentArrays
2009-11-13 12:51:38       1273     1     1 Application process
                | | | | | | | TEACHER_LoadStudents ( 1 )
2009-11-13 12:51:38       1276     1     1 Application process
    [         16] | | | | | | TEACHER_Edit_FormMethod
2009-11-13 12:51:38       1277     1     1 Application process
    [         19] | | | | | _INPUT_FORM_CALLBACK ==> True
2009-11-13 12:51:38       1278     1     1 Application process
                | | | | | _FORM_Title ( ->[Teacher], "" )  ==>
"Teacher Details"
2009-11-13 12:51:38       1280     1     1 Application process
                | | | | | _TRANS_Level (  )  ==> 1
2009-11-13 12:51:38       1282     1     1 Application process
    [         28] | | | | _INPUT_FORM_METHOD ==> True

(Views best in a monospaced font).

Information is as follows:
Datetime stamp
Milliseconds since start
Transaction level
Process number
Process name
[Method-duration-milliseconds] (on return of a method call only)
Method call details: Method name, parameters, return value

I'm still in the middle of updating my application framework to adopt
the "flourishes" so not all of the methods shown in the profile have
proper display of parameters and results.

Names of local variables in the parameter list will only work in
interpreted mode, thanks to the inability of RESOLVE POINTER in
compiled mode to find the name of a local variable. But I still think
it's worth displaying things in this way.

The system simple and works pretty well using the "form controller"
style of programming (i.e. no real code in object methods).

If anyone's interested I can post more details of how to do this. It's
pretty easy...

David Dancy
Sydney, Australia



2009/11/14 David Nasralla <dnasralla@...>:

> Hi all,
>
> I was wondering if anyone tracks what objects were clicked on -
> meaning do you also put the CallChain tracking in all you buttons and
> listboxes,etc. - or do you simple not put code directly in objects,
> and have the objects call a single method instead (and there-by
> tracking it.)
>
> dave
>
> (BTW - Thanks to everyone that has contributed to this discussion. )
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by David Dancy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry, GMail has mucked up the display of the long lines of text...
not hard to figure out, but a bit tedious. To view the original, copy
and paste into a text editor, change to monospace font, and join up
every even line with every odd one.

David Dancy
Sydney, Australia



2009/11/14 David Dancy <david.dancy@...>:

> Coincidentally, I have been putting some flourishes (if I do say so
> myself) on a generic code-profiling system that produces output like
> this:
>
> 2009-11-13 12:51:37             23          0       1   Application process
>                        CONFIG_GetProperty ( "Version", ->$DataVersion_r )
> 2009-11-13 12:51:37             26          0       1   Application process
>                        | _DOM_Decode4DVar ( "09D1BA680F7C3380",
> "Property/Value", ->$DataVersion_r )
> 2009-11-13 12:51:37             30          0       1   Application process
>        [          8]   CONFIG_GetProperty
> 2009-11-13 12:51:37             31          0       1   Application process
>                        _ABOUT_Credits (  )
> 2009-11-13 12:51:37             33          0       1   Application process
>                        _ABOUT_Logo (  )
> 2009-11-13 12:51:37             34          0       1   Application process
>                        _ABOUT_Support (  )
> 2009-11-13 12:51:37             36          0       1   Application process
>                        CONTROLPANEL_Open (  )
> 2009-11-13 12:51:37             58          0       1   Application process
>                        | CONTROLPANEL_FormMethod ( 1, ->NIL )
> 2009-11-13 12:51:37             62          0       1   Application process
>        [         26]   CONTROLPANEL_Open
> 2009-11-13 12:51:38           1200          0       1   Application process
>                        CONTROLPANEL_FormMethod ( 4, ->CMD_MenuButton2 )
> 2009-11-13 12:51:38           1201          0       1   Application process
>                        | CONTROLPANEL_Execute ( "TEACHER_Edit" )
> 2009-11-13 12:51:38           1210          0       1   Application process
>                        | | TEACHER_Edit ( 0 )
> 2009-11-13 12:51:38           1213          0       1   Application process
>                        | | | _DIALOG ( ->[Teacher], "Edit",
> "TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
> ->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
> 2009-11-13 12:51:38           1216          0       1   Application process
>                        | | | | _INPUT_FORM ( ->[Teacher], "Edit",
> "TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
> ->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
> 2009-11-13 12:51:38           1255          0       1   Application process
>                        | | | | _INPUT_FORM_METHOD ( ->[Teacher], 1, ->NIL,
> False )
> 2009-11-13 12:51:38           1256          0       1   Application process
>                        | | | | | _TRANS_Begin ( "_INPUT_FORM_METHOD" )
> 2009-11-13 12:51:38           1259          1       1   Application process
>                        | | | | | _INPUT_FORM_CALLBACK ( 2, 1, ->NIL )
> 2009-11-13 12:51:38           1260          1       1   Application process
>                        | | | | | | TEACHER_Edit_FormMethod ( 1, ->NIL )
> 2009-11-13 12:51:38           1262          1       1   Application process
>                        | | | | | | | RULE_LoadPersonTitles (
> ->TEACHER_Title_at )
> 2009-11-13 12:51:38           1263          1       1   Application process
>                        | | | | | | | | _ARRAY_Resize ( ->TEACHER_Title_at,
> 0 )
> 2009-11-13 12:51:38           1265          1       1   Application process
>                        | | | | | | | | _APPEND_TO_TEXT_ARRAY (  )
> 2009-11-13 12:51:38           1266          1       1   Application process
>        [          5]   | | | | | | | RULE_LoadPersonTitles
> 2009-11-13 12:51:38           1268          1       1   Application process
>                        | | | | | | | TEACHER_StudentArrays ( 0 )
> 2009-11-13 12:51:38           1269          1       1   Application process
>                        | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
> 2009-11-13 12:51:38           1270          1       1   Application process
>                        | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
> 2009-11-13 12:51:38           1271          1       1   Application process
>        [          4]   | | | | | | | TEACHER_StudentArrays
> 2009-11-13 12:51:38           1273          1       1   Application process
>                        | | | | | | | TEACHER_LoadStudents ( 1 )
> 2009-11-13 12:51:38           1276          1       1   Application process
>        [         16]   | | | | | | TEACHER_Edit_FormMethod
> 2009-11-13 12:51:38           1277          1       1   Application process
>        [         19]   | | | | | _INPUT_FORM_CALLBACK ==> True
> 2009-11-13 12:51:38           1278          1       1   Application process
>                        | | | | | _FORM_Title ( ->[Teacher], "" )  ==>
> "Teacher Details"
> 2009-11-13 12:51:38           1280          1       1   Application process
>                        | | | | | _TRANS_Level (  )  ==> 1
> 2009-11-13 12:51:38           1282          1       1   Application process
>        [         28]   | | | | _INPUT_FORM_METHOD ==> True
>
> (Views best in a monospaced font).
>
> Information is as follows:
> Datetime stamp
> Milliseconds since start
> Transaction level
> Process number
> Process name
> [Method-duration-milliseconds] (on return of a method call only)
> Method call details: Method name, parameters, return value
>
> I'm still in the middle of updating my application framework to adopt
> the "flourishes" so not all of the methods shown in the profile have
> proper display of parameters and results.
>
> Names of local variables in the parameter list will only work in
> interpreted mode, thanks to the inability of RESOLVE POINTER in
> compiled mode to find the name of a local variable. But I still think
> it's worth displaying things in this way.
>
> The system simple and works pretty well using the "form controller"
> style of programming (i.e. no real code in object methods).
>
> If anyone's interested I can post more details of how to do this. It's
> pretty easy...
>
> David Dancy
> Sydney, Australia
>
>
>
> 2009/11/14 David Nasralla <dnasralla@...>:
>> Hi all,
>>
>> I was wondering if anyone tracks what objects were clicked on -
>> meaning do you also put the CallChain tracking in all you buttons and
>> listboxes,etc. - or do you simple not put code directly in objects,
>> and have the objects call a single method instead (and there-by
>> tracking it.)
>>
>> dave
>>
>> (BTW - Thanks to everyone that has contributed to this discussion. )
>
**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************

Re: Call Chain

by Nigel Greenlee :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Well as we sharing what we hold in the tracking here is mine..

Time Date Method Form Trigger Object Event Data Process Process ID Free Memory Up Since
16:15:20 12/11/2009 Process_Monitor 0 $Process_Manager 7 2086494788 21837625
16:15:20 12/11/2009 End Process_Monitor 0 $Process_Manager 7 2086483972 21837671
16:15:20 12/11/2009 0 Purchase Payment 34 2086491732 21837765
16:15:20 12/11/2009 Start 'dPayment' form method. Event No. 1(On Load) 0 Purchase Payment 34 2086486484 21837796
16:15:20 12/11/2009 OpenHelp 0 Purchase Payment 34 2086484836 21837843
16:15:20 12/11/2009 DB_DirSymbol 0 Purchase Payment 34 2086482884 21837875
16:15:20 12/11/2009 DB_Macintosh 0 Purchase Payment 34 2086481252 21837890
16:15:20 12/11/2009 Exit DB_Macintosh 0 Purchase Payment 34 2086479668 21837953
16:15:20 12/11/2009 DB_DirSymbol 0 Purchase Payment 34 2086478004 21837984
16:15:20 12/11/2009 Exit DB_DirSymbol 0 Purchase Payment 34 2086476692 21838015
16:15:20 12/11/2009 OpenHelp 0 Purchase Payment 34 2086474964 21838046
16:15:20 12/11/2009 DB_Macintosh 0 Purchase Payment 34 2086473380 21838109
16:15:20 12/11/2009 Exit DB_Macintosh 0 Purchase Payment 34 2086471780 21838140
16:15:20 12/11/2009 OpenHelp 0 Purchase Payment 34 2086470116 21838171

and yes we track objects as well as project methods(and triggers as well)..we also as you can see above have the object event for objects so we know what the event was on a form..

Are we all writing more or less the same code!



On 13 Nov 2009, at 20:31, David Dancy wrote:

> Sorry, GMail has mucked up the display of the long lines of text...
> not hard to figure out, but a bit tedious. To view the original, copy
> and paste into a text editor, change to monospace font, and join up
> every even line with every odd one.
>
> David Dancy
> Sydney, Australia
>
>
>
> 2009/11/14 David Dancy <david.dancy@...>:
>> Coincidentally, I have been putting some flourishes (if I do say so
>> myself) on a generic code-profiling system that produces output like
>> this:
>>
>> 2009-11-13 12:51:37             23          0       1   Application process
>>                        CONFIG_GetProperty ( "Version", ->$DataVersion_r )
>> 2009-11-13 12:51:37             26          0       1   Application process
>>                        | _DOM_Decode4DVar ( "09D1BA680F7C3380",
>> "Property/Value", ->$DataVersion_r )
>> 2009-11-13 12:51:37             30          0       1   Application process
>>        [          8]   CONFIG_GetProperty
>> 2009-11-13 12:51:37             31          0       1   Application process
>>                        _ABOUT_Credits (  )
>> 2009-11-13 12:51:37             33          0       1   Application process
>>                        _ABOUT_Logo (  )
>> 2009-11-13 12:51:37             34          0       1   Application process
>>                        _ABOUT_Support (  )
>> 2009-11-13 12:51:37             36          0       1   Application process
>>                        CONTROLPANEL_Open (  )
>> 2009-11-13 12:51:37             58          0       1   Application process
>>                        | CONTROLPANEL_FormMethod ( 1, ->NIL )
>> 2009-11-13 12:51:37             62          0       1   Application process
>>        [         26]   CONTROLPANEL_Open
>> 2009-11-13 12:51:38           1200          0       1   Application process
>>                        CONTROLPANEL_FormMethod ( 4, ->CMD_MenuButton2 )
>> 2009-11-13 12:51:38           1201          0       1   Application process
>>                        | CONTROLPANEL_Execute ( "TEACHER_Edit" )
>> 2009-11-13 12:51:38           1210          0       1   Application process
>>                        | | TEACHER_Edit ( 0 )
>> 2009-11-13 12:51:38           1213          0       1   Application process
>>                        | | | _DIALOG ( ->[Teacher], "Edit",
>> "TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
>> ->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
>> 2009-11-13 12:51:38           1216          0       1   Application process
>>                        | | | | _INPUT_FORM ( ->[Teacher], "Edit",
>> "TEACHER_Edit_FormMet... [23 chars]", ->TEACHER_OK_btn,
>> ->TEACHER_Cancel_btn, ->NIL, ->NIL, ->NIL )
>> 2009-11-13 12:51:38           1255          0       1   Application process
>>                        | | | | _INPUT_FORM_METHOD ( ->[Teacher], 1, ->NIL,
>> False )
>> 2009-11-13 12:51:38           1256          0       1   Application process
>>                        | | | | | _TRANS_Begin ( "_INPUT_FORM_METHOD" )
>> 2009-11-13 12:51:38           1259          1       1   Application process
>>                        | | | | | _INPUT_FORM_CALLBACK ( 2, 1, ->NIL )
>> 2009-11-13 12:51:38           1260          1       1   Application process
>>                        | | | | | | TEACHER_Edit_FormMethod ( 1, ->NIL )
>> 2009-11-13 12:51:38           1262          1       1   Application process
>>                        | | | | | | | RULE_LoadPersonTitles (
>> ->TEACHER_Title_at )
>> 2009-11-13 12:51:38           1263          1       1   Application process
>>                        | | | | | | | | _ARRAY_Resize ( ->TEACHER_Title_at,
>> 0 )
>> 2009-11-13 12:51:38           1265          1       1   Application process
>>                        | | | | | | | | _APPEND_TO_TEXT_ARRAY (  )
>> 2009-11-13 12:51:38           1266          1       1   Application process
>>        [          5]   | | | | | | | RULE_LoadPersonTitles
>> 2009-11-13 12:51:38           1268          1       1   Application process
>>                        | | | | | | | TEACHER_StudentArrays ( 0 )
>> 2009-11-13 12:51:38           1269          1       1   Application process
>>                        | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
>> 2009-11-13 12:51:38           1270          1       1   Application process
>>                        | | | | | | | | _APPEND_TO_POINTER_ARRAY (  )
>> 2009-11-13 12:51:38           1271          1       1   Application process
>>        [          4]   | | | | | | | TEACHER_StudentArrays
>> 2009-11-13 12:51:38           1273          1       1   Application process
>>                        | | | | | | | TEACHER_LoadStudents ( 1 )
>> 2009-11-13 12:51:38           1276          1       1   Application process
>>        [         16]   | | | | | | TEACHER_Edit_FormMethod
>> 2009-11-13 12:51:38           1277          1       1   Application process
>>        [         19]   | | | | | _INPUT_FORM_CALLBACK ==> True
>> 2009-11-13 12:51:38           1278          1       1   Application process
>>                        | | | | | _FORM_Title ( ->[Teacher], "" )  ==>
>> "Teacher Details"
>> 2009-11-13 12:51:38           1280          1       1   Application process
>>                        | | | | | _TRANS_Level (  )  ==> 1
>> 2009-11-13 12:51:38           1282          1       1   Application process
>>        [         28]   | | | | _INPUT_FORM_METHOD ==> True
>>
>> (Views best in a monospaced font).
>>
>> Information is as follows:
>> Datetime stamp
>> Milliseconds since start
>> Transaction level
>> Process number
>> Process name
>> [Method-duration-milliseconds] (on return of a method call only)
>> Method call details: Method name, parameters, return value
>>
>> I'm still in the middle of updating my application framework to adopt
>> the "flourishes" so not all of the methods shown in the profile have
>> proper display of parameters and results.
>>
>> Names of local variables in the parameter list will only work in
>> interpreted mode, thanks to the inability of RESOLVE POINTER in
>> compiled mode to find the name of a local variable. But I still think
>> it's worth displaying things in this way.
>>
>> The system simple and works pretty well using the "form controller"
>> style of programming (i.e. no real code in object methods).
>>
>> If anyone's interested I can post more details of how to do this. It's
>> pretty easy...
>>
>> David Dancy
>> Sydney, Australia
>>
>>
>>
>> 2009/11/14 David Nasralla <dnasralla@...>:
>>> Hi all,
>>>
>>> I was wondering if anyone tracks what objects were clicked on -
>>> meaning do you also put the CallChain tracking in all you buttons and
>>> listboxes,etc. - or do you simple not put code directly in objects,
>>> and have the objects call a single method instead (and there-by
>>> tracking it.)
>>>
>>> dave
>>>
>>> (BTW - Thanks to everyone that has contributed to this discussion. )
>>
> **********************************************************************
> Get up to $600 to spend on Amazon.com
> this holiday season - http://www.4d.com/serverpromo.html
>
>
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4D.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4D_Tech-Unsubscribe@...
> **********************************************************************

**********************************************************************
Get up to $600 to spend on Amazon.com
this holiday season - http://www.4d.com/serverpromo.html


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************
< Prev | 1 - 2 | Next >