Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: DfSplat Preview release

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Default DfSplat Preview release

    Hi,

    As presented at the DISD last Saturday, here's an initial preview release of DfSplat.

    https://projects.vdf-guidance.com/pr.../dfsplat/files

    What is DfSplat?

    DfSplat is a debugger for DataFlex applications and is able to debug all your DataFlex applications from version 12.x up to 19.1 all with one compiled binary.

    It is built around the Data Access debugging components, so it depends on a fully licensed developer's copy installed on your machine in order to work.
    It is starting to get feature complete with what DAW offers in the Studio (not 100% there yet, but the gap has been closed by a large margin since VdfSplat days)

    Why DfSplat?

    Because I can, because The Hammer needed a debugger, because I got bored waiting in a queue one day.

    What can you do?

    Because all of the code is available in DataFlex source there are more things possible with it than you can do in the Studio.
    Some of that has already been implemented by me. I'm sure more will come.

    To name a few things:
    - Use the object inspector to navigate the runtime objects for all of your application. If you are navigating a DF19.0+ application then you get to see most of the DataFlex objects that it is based on. Navigating the objects even in the Order Entry is interesting.
    Note also the DataDictionary inspector in there if you focus on a datadictionary object and that you can hide DfSplat to look at the application while you are using the object inspector. An interesting feature of this panel is that it allows you to inspect for object leakage (eg. when you forget to destroy dynamically created objects, more about this feature in a later blog post or article)

    - A Panel inspector. This is similar to the object inspector, it displays only the currently focused view or panel. This is much faster as enumerating the whole application, but has some limitations. It won't -for example- be a good way to inspect memory leaked objects ...

    - Hovering over a property or variable will show its contents. No need to drag it to a watch.

    - There's a profiling button so you can see how long executing a command took. (this can also be run in auto-step, but no way to present the measured data yet)

    - There's preliminary watch point support. This means that you can trigger a breakpoint when data changes. For example when a property is changed or when a record changes or ... any data really. There's a few notes on how-to use this feature. Let me suffice to say that it uses a technique I dubbed "Auto step" which basically uses the "step into" feature at a high automated rate. I will also write a blog post about this feature later on.

    - There's support for importing breakpoints from the Studio which you can then save or load as a named break point file. For the moment I have disabled the "Studio export" feature as it requires more testing.

    Note that my presentation had some hickups (to put it mildly ) and thus I wasn't able to show off everything I intended to show.
    The main reason for that mishap was that I tested on my development VM under DataFlex 19.0 and ended up presenting on a DataFlex 19.1 VM.
    That wasn't the biggest issue..
    The real problem was that my VM's normally always run with US regional settings, however the demo VM used dutch regional settings.... Again no big deal, except that a large amount of DfSplat's magic is done via the runtime expression evaluator and the expression evaluator behaves different depending on regional settings.
    eg. (Field_Current_Value(220,2)) is File 220, field 2 in US format, but it is File 220,2 and NO field in Dutch format.
    Suffice it to say that DfSplat barfed on that.. at the wrong time, during my presentation. (live dangerously, get burned)

    This has all been addressed and works well on European as well as US regional settings now.

    Hope you all enjoy DfSplat.

    More will come later.

    edit: Here's a link to an earlier VdfSplat release with more details on what it is and some _old_ screenshots.

    --
    Wil
    Last edited by wila; 10-Mar-2020 at 08:32 PM.

  2. #2
    Join Date
    Feb 2009
    Location
    SW Connecticut/NY area
    Posts
    8,376

    Default Re: DfSplat Preview release

    Wow Wil, this sounds great. How many times has a customer complained about something that you can't duplicate on your dev box. In fact not having to put a property in the Watch box alone is worth it.

    Sorry I couldn't make it to DISD, I would have enjoyed meeting you at long last
    Bob Worsley
    203-249-2633
    rlworsley at gmail.com

    Do or do not. There is no try. — Yoda

  3. #3

    Default Re: DfSplat Preview release

    Bob,
    Quote Originally Posted by Bob Worsley View Post
    Wow Wil, this sounds great. How many times has a customer complained about something that you can't duplicate on your dev box. In fact not having to put a property in the Watch box alone is worth it.
    Uhh.. not sure what you mean there with "not being able to duplicate on dev box".
    As mentioned in my post, the debugger _does_ depend on a licensed DataFlex developer environment.
    Basically it wraps the vdfdbg.dll just like the studio does as well. It also needs the .dbg file _and_ it needs your source.

    While technically it would be able to morph this into a remote debugger, it would be a whole different ball game.
    FTR adding remote debugging capabilities was one thing I have looked into and have -at least for now- dismissed it as out of scope.

    --
    Wil

  4. #4
    Join Date
    Feb 2009
    Location
    SW Connecticut/NY area
    Posts
    8,376

    Default Re: DfSplat Preview release

    You know that when you give a customer new code that chances are they will break it in the first 5 minutes? I did it.

    I installed & compiled VDFSplat
    Ran the executable
    Clicked File & Open Program
    Selected my 19.0 program running on W-10
    Clicked Start debug
    For lack of any better idea, clicked the Trace window
    Clicked Enable Trace and voila! got the error below. The only way to get out of it is to kill the debugger

    Click image for larger version. 

Name:	vdfSplatError.jpg 
Views:	63 
Size:	5.0 KB 
ID:	13528

    Oops...
    Bob Worsley
    203-249-2633
    rlworsley at gmail.com

    Do or do not. There is no try. — Yoda

  5. #5
    Join Date
    Feb 2009
    Location
    Somewhere in Vermont, USA - unless I'm not
    Posts
    10,066

    Default Re: DfSplat Preview release

    Didn't you mean:

    You know that when you give Bob new code that chances are he will break it in the first 5 minutes?
    Garret

    I ordered a chicken and an egg from Amazon.

    I'll let you know...

  6. #6
    Join Date
    Feb 2009
    Location
    SW Connecticut/NY area
    Posts
    8,376

    Default Re: DfSplat Preview release

    No... and who asked you?
    Bob Worsley
    203-249-2633
    rlworsley at gmail.com

    Do or do not. There is no try. — Yoda

  7. #7

    Default Re: DfSplat Preview release

    Quote Originally Posted by Bob Worsley View Post
    You know that when you give a customer new code that chances are they will break it in the first 5 minutes? I did it.
    Oops...
    No worries, that's just some test code I forgot to remove.

    File cDebuggerEngine.pkg, line 1935, comment it out.

    The tracing needs some more work. Didn't yet feel like fleshing out that bit I was playing with other parts.

    There's one other area I have to look into and work on.
    I will let you find it. Your 5 minutes start now.
    --
    Wil

  8. #8
    Join Date
    Feb 2009
    Location
    SW Connecticut/NY area
    Posts
    8,376

    Default Re: DfSplat Preview release

    Unfortunately that was 52 minutes ago, sorry...
    Bob Worsley
    203-249-2633
    rlworsley at gmail.com

    Do or do not. There is no try. — Yoda

  9. #9
    Join Date
    Feb 2009
    Location
    SW Connecticut/NY area
    Posts
    8,376

    Default Re: DfSplat Preview release

    Hi Wil,
    A quick look-see turned up a few questions and a bug

    In the Watches window, copying a variable in requires a Tab to make it stick, Enter doesn't do it but in the Studio it does. Maybe have the Enter key work as well just for compatibility?

    Properties - Where can they be viewed except for the Watches window? I'd love to see them in either the Local Variables window or a Properties Window, I get tired of having to always type (Self). Oops, just found that if you leave the cursor over a property for long enough, it does get evaluated - takes a full second before it shows. I can live with that...

    I have several string[] properties in the program, they always evaluate to "Error: Illegal Datatype Conversion". If I get them to a local variable the contents shows as expected. Since we always have to do that it's really a non issue but just thought I'd mention it

    Click the Goto Instruction button and click Ok without entering anything I get a "Data Out of Range" error. Yes Garret, I shouldn't do that but the general user population certainly would...

    I noticed that if I get to a message to go to a DF package that it will find it and go to that method but I'm running it in my 19.0 development environment so that's not surprising. If VDFSplat is run in a production environment without the DAW packages what would happen in this case? Would it throw an error or skip over that call? This brings up the question of deployment and what would be required. Obviously source that you want to walk through but all of the DAW packages too? The dll's you included with VDFSplat? I'm not planning on trying this yet, just curious.

    This is a great product, congrats as usual!

    More later
    Bob Worsley
    203-249-2633
    rlworsley at gmail.com

    Do or do not. There is no try. — Yoda

  10. #10

    Default Re: DfSplat Preview release

    Hi Bob,

    Quote Originally Posted by Bob Worsley View Post
    In the Watches window, copying a variable in requires a Tab to make it stick, Enter doesn't do it but in the Studio it does. Maybe have the Enter key work as well just for compatibility?
    Had seen this in the past, never considered doing something about it. But it has been addressed now.

    Quote Originally Posted by Bob Worsley View Post
    Properties - Where can they be viewed except for the Watches window? I'd love to see them in either the Local Variables window or a Properties Window, I get tired of having to always type (Self). Oops, just found that if you leave the cursor over a property for long enough, it does get evaluated - takes a full second before it shows. I can live with that...
    The time out can be made configurable.
    One thing to watch out for with the tooltip evaluating properties.
    The object evaluator uses the "Self"/ current object from the object where you are in the breakpoint or step.
    If you navigate in the stack then you might move to another object. It will _still_ display the properties for the old object.
    I have not found a way to cure that now. You can see the value of self on the right hand side in the locals pane, but unfortunately I haven't been able to scrape that data so far.

    Quote Originally Posted by Bob Worsley View Post
    I have several string[] properties in the program, they always evaluate to "Error: Illegal Datatype Conversion". If I get them to a local variable the contents shows as expected. Since we always have to do that it's really a non issue but just thought I'd mention it
    Probably will be tricky to resolve, but have logged it so that it is on the list.
    https://projects.vdf-guidance.com/issues/170


    Quote Originally Posted by Bob Worsley View Post
    I noticed that if I get to a message to go to a DF package that it will find it and go to that method but I'm running it in my 19.0 development environment so that's not surprising. If VDFSplat is run in a production environment without the DAW packages what would happen in this case? Would it throw an error or skip over that call? This brings up the question of deployment and what would be required. Obviously source that you want to walk through but all of the DAW packages too? The dll's you included with VDFSplat? I'm not planning on trying this yet, just curious.
    It is intended to be used in a developer environment.
    Actually it's primary use would be for The Hammer, but you can run it from a Studio menu option or standalone as you have figured out.
    If used in a production environment then there's the question about licensing on Data Access their debugging component. Their debugging component - which dfSplat uses - is developer license only. If there's a more serious demand on being able to debug at production site(s) then we need to have a talk with DAW about that. I do not endorse or support to violate their licensing terms.
    This is building on top of a great product and we should respect that.

    As it is, it needs the source files to be present and counts on those to be there. I had it on my whiteboard here last week to investigate, but dismissed it as it falls in the "remote debugger" scenario I discussed earlier. Talked with a few developers about the possibility of being able to remotely debug a Windows or Web App and wasn't overwhelmed by the response. For now that idea has been "on hold". FWIW, adding remote capabilities would be a time intensive project as I do miss some specific API functionality not currently offered by DAWs debugging control.

    --
    Wil

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •