|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
Call ChainIs 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...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 ChainJack:
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 ChainHi 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 ChainThank 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@... ********************************************************************** |
|
|
|
|
|
Re: Call ChainThis 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 ChainJacques,
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 ChainThank 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@... ********************************************************************** |
|
|
|
|
|
RE: Call ChainDavid 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 ChainJacques/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 ChainHi 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 ChainBased 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 ChainHi 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@... ********************************************************************** |
|
|
|
|
|
|
|
|
Re: Call ChainCoincidentally, 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 ChainSorry, 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 ChainWell 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 > |
| Free embeddable forum powered by Nabble | Forum Help |