Jump to content

Lars Fosdal

Administrators
  • Content Count

    3323
  • Joined

  • Last visited

  • Days Won

    110

Posts posted by Lars Fosdal


  1. Can you see the value if you create a new Watch for it?

    Is the "variable" you are trying to inspect, actually a function result like MyObject.MyFunction? 

    If it is, you need to go to Tools | Options | Debugger and enable "Allow side effects and function calls in new watches"

    • Like 1

  2. Do you mean a tooltip for a variable in the source code on a breakpoint inside the IDE, or a tooltip that should appear on a component in your application when it is running?

     

    As you can see - your description still lack the detail needed for me to really understand the problem. Be specific.


  3. Thank you, Daniel - for expanding the Delphi-PraXis site to offer a home for the English speaking Delphi Developers!

    I spelunk this place almost every day, and it is invaluable to the community for keeping up to date, and find help in resolving issues - or simply for learning new things!

     

    See you around, and my best wishes to you and your family for a joyful and prosperous new year!

     

    Brgds, Lars F.

    • Like 1

  4. We always run with MARS=Yes.

    We also follow a different pattern with regards to inserts and updates - using stored procedures to change the contents of the database.

     

    Usually the problem is that more than one operation is attempted on the same connection at the same time.

    Are you certain you are not crossing variables somewhere? In you example code, there is fdcAmman and fdcUpdateAmman ...

     


  5. I use EL, so I can't really opinionate on MadExcept.  It is very rare that it gives me no clue to the callstack for exceptions caused by dangling pointers, but when desperate, I've turned to using a FreeAndNil overload to set the pointers to a recognizable value, $DEAD0001 and so forth, and logging the line where I set the respective ptr values to at least find a hint to the context that is trying to use it. Problems like these can be a pain to find.

     

    Another alternative would be to try with regular threads to see if the problem persists - if it doesn't, it might be that you can attribute it to something OTL specific?

     

     

    • Like 1
    • Thanks 1

  6. 1 hour ago, Tommi Prami said:
    1 hour ago, Lars Fosdal said:

    No locks or semaphores in CompressFile?

    Yes but released in  try.. finally. I use Critical section and very short ones. 

    Doesn't that mean that only ONE compression can happen at a time - i.e. serializing your use of CompressFile?
    Edit: Are you reusing the same critical section in multiple locations in the code or on multiple nested levels? That could become a race condition.

     


  7. 3 minutes ago, Stefan Glienke said:

    what you refer to is AOT - when .NET code runs, the runtime always JITs the code to machine code

    Regular C# .NET Code transpiles to IL code. When you run, the JITer compiles the IL code to native code - but as you say - on every run.
    But - You can - with limitations - compile C# .NET code to native code - using the AOT approach.
    From the second link I posted:

    Quote

    Publishing your app as Native AOT produces an app that's self-contained and that has been ahead-of-time (AOT) compiled to native code. Native AOT apps have faster startup time and smaller memory footprints. These apps can run on machines that don't have the .NET runtime installed.

    There are some elements that are still JITed - such as LINQ expressions - and there is a limit to which libs and platforms that supports AOT - but it keeps expanding from one .NET version to the next.

×