Jump to content

Wagner Landgraf

Members
  • Content Count

    128
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Wagner Landgraf


  1. 1 hour ago, Fr0sT.Brutal said:

    imagine 10 copies of JVCL...

    If I'm not wrong, @Vincent Parrett's package manager puts the packages in a global cache. So if you have multiple projects using the same version of JVCL, only one copy will be in your storage. If a couple of projects use an older version, then you will have two copies of JVCL. So it's the ideal scenario. I guess that's how it works, but he can confirm it. 


  2. I think the "problem" with Package Manager is that is has to be widely adopted by the community to be very useful. Because the key is that relevant libraries and 3rd parties are available in the package manager. "Unfortunately" Embarcadero is pushing GetIt so it's unlikely we will have a different one being widely adopted, I guess.

    • Like 2

  3. 1 hour ago, Stefan Glienke said:

    The question is this: do you want to get a wide adoption rate of something you've built or do you want to get two and a half coffees paid.

     

    As for how the console is done: Visual Studio Code simply communicates via stdin/stdout/stderr - see https://vscode.readthedocs.io/en/latest/editor/integrated-terminal/ 

    Or if you want to find a way to do constant updates and improvements or leave it abandoned.


  4. 8 hours ago, Der schöne Günther said:

    Internally, the binary also uses the JCL, but can be recompiled to use Eureka or madExcept.

    Thank you for presenting another approach. But that still needs JCL, so in the end, it's using the "JCL way". From what I saw DebugEngine is also very lightweight and even easier to use than this approach. It also looks like it did extra job to gather a "more correct" call stack. It all boils down to reliability, as JCL is widely used, and DebugEngine doesn't seem to be so. I guess I will have to just try it for a while and see it myself.


  5. 25 minutes ago, aehimself said:

    I gave DebugEngine a try and it is very good. Sometimes it provides stack traces strange (method where exception happened, two inner methods of DebugEngine and then the real stack trace) but it's really easy to install and use. It is also unaffected by the two issues I have with MadExcept (TThread.FatalException and Exception.InnerException is rendered useless).

     

    Thank you very much for the feedback. Since you mentioned you just "gave it a try", you are not using it anymore, and/or didn't use it in production?

    I'm also interested in knowing how it is (and the other mentioned tools) when it comes to performance and stability, since I intend to use it in server applications.


  6. I wonder what is a good way to get the stack trace when an exception happens? I know about madExcept and EurekaLog but I was willing to have something lighter and simpler.

    After a long Google-Fu session, it looks like using JclDebug is still the way to go? I also read here and there that madExcept is better at such job than JclDebug, and since DebugEngine is provided by the madExcept author, I wonder if it (DebugEngine) is a better alternative than JclDebug?

    Or is there even a more direct, straightforward way to get the stack trace these days?

     

     


  7. 6 hours ago, Anders Melander said:

    It turned out that the culprit was the version of msdia140.dll that came bundled with the version of VTune I'm using.

    @Anders Melander, unfortunately that didn't work for me in a specific project.

    Actually, I never had patience to wait for it to finish (maximum 1 hour). The weird thing is that this project is not that big, and I use lots of excludes, the PDB file size is 388 Kb. Would you be interested in checking this specific situation?


  8. Is there a place where we can find the "official" DUnit source code? It looks like there isn't one.

     

    I have DUnit source code here from difference sources - Delphi 10.4.2 Sydney, SourceForge SVN (https://svn.code.sf.net/p/dunit/svn/trunk), Delphi Leak Check (https://github.com/shadow-cs/delphi-leakcheck/tree/master/External/DUnit) and they are all different.

     

    It looks like the most "recent" version is the Delphi one. I need to do some modifications to DUnit and I was thinking about creating a GitHub repository to make it "official", applying changes from those sources when needed and accepting changes from contributors.

     

    Does anyone has a better idea? Does anyone know if the license allow me to do so (and also apply modifications made by Embarcadero from each Delphi version)?

    • Like 1

  9. 3 hours ago, Anders Melander said:

    It's probably caused by a bug in map2pdb (e.g. some hash table is incorrect) but for now my plan is to add a white/black list option to include and exclude units from the pdb. So for example if I specify the switch -exclude:dx* then any unit that starts with "dx" (i.e. DevExpress) will be excluded from the pdb.

    Ok. Please let me know if I can be of any help somehow. I believe it's currently not very usable for you as well since the time it takes is just too much.

    Your focus on black/white is in the hope that it will reduce the symbol table size and thus speed up the process?


  10. 8 hours ago, Edwin Yip said:

    Maybe price? 😉

    That's a significant factor, yes. But since I have already bought it, and actually when a tool saves your time and/or allows you to more easily improve the quality of your code, it pays for itself. So I was mostly talking about technical differences. 


  11. On 4/6/2021 at 5:53 AM, Attila Kovacs said:

    I've seen in procmon that something happens but slow af and had nothing to do with the pdb. I'm still waiting for the confirmation email for the intel tech forum where google found some similar posts.

    Are you referring to the slowness of the "Resolving information" step? Any news about this?

    I have the same problem, it's taking more than 30 minutes and still going on...

×