Jump to content
Tom F

EurekaLog vs MadExcept vs manual

Recommended Posts

Posted (edited)

If a user reports an exception like the one below, is there a way to track it down without having shipped an exe built with EurekaLog or MadExcept, etc.

My release builds do not generate a .map file, but I can easily rebuild the release to generate one.  But, I don't understand how I'd use the 00687017 address once I'd done that to find where in my code the exception occurred. How do I enable the Goto Address menu option in the IDE? 

image.png.4141c50007f7765f2c5ebb4c806837e9.png

 

Any opinions here on EurekaLog vs MadExcept for distributing with a Win 32 app to help with situations like this in the future?

Edited by Tom F

Share this post


Link to post

First of all, have a detailed statement sent to you. Eurekalog has a few videos. Look at them.

Share this post


Link to post
2 minutes ago, Stano said:

First of all, have a detailed statement sent to you. Eurekalog has a few videos. Look at them.

What do you mean by a "detailed statement," Stano?

 

Share this post


Link to post
9 minutes ago, Tom F said:

How do I enable the Goto Address menu option in the IDE?

That menu item should be enabled whenever you have the CPU window open while debugging.

Share this post


Link to post
Posted (edited)

Whenever you stop at some breakpoint you can use it, make sure to prepend $ when typing the address because hexadecimal

Edited by Stefan Glienke
  • Like 1

Share this post


Link to post
3 minutes ago, Uwe Raabe said:

That menu item should be enabled whenever you have the CPU window open while debugging.

Hi, Uwe,

Thanks for your response.

That's where I got lost.  I shipped my app with no debugging info. If I want to trace down an address that's accurate in that version, I'd compile with the same flags as my shipped version, but this time generate a map file, right? That's no problem.

But, then, how do I get to any debug windows (like the CPU window) when I start the app in the IDE with debugging, since there are no settable breakpoints.

 

 

Share this post


Link to post
1 minute ago, Stefan Glienke said:

Whenever you stop at some breakpoint you can use it.

Hi, Stefan,

But, if I shipped my app without debug info, and I want to find an address in THAT build, how do I get to a breakpoint?

Share this post


Link to post
1 minute ago, Tom F said:

But, if I shipped my app without debug info, and I want to find an address in THAT build, how do I get to a breakpoint?

Enable debug info - should not change the addresses if the code and all other options are exactly the same.

  • Like 1

Share this post


Link to post

Generuje súbor * .elp. V ich prehliadači to vyzerá takto. Mám tam málo, pretože v dpr boli chyby.
Keď sa však dostanem k akýmkoľvek ladiacim očiam (napríklad k oknu CPU), keď spustím aplikovaniu anti-IDE s ladením, nie sú pripravené žiadne nastaviteľné telá prehladávača.
Toto je opísané v príručke. Myslím, že je to tiež Zobrazené vo videu.

2021 08 04 18 00 57.png

  • Confused 2

Share this post


Link to post

Well, this is long !

 

First the "Go to Address" is in "Search" menu (IDE main menu), and it is enabled when the debugger is active, here i recommend to use it by hitting F8 (Step Over) instead of "Run" (F9), (at least for older IDE up to Seattle) it was in Search menu.

 

But there is a problem, see when you built a binary and later your client reported an exception like the one you mentioned, you will need that address and you must have the same source of his binary with the same, well all the packages on the IDE, in other words, there is a big chance that a very small change to the source lead to shift that address line, here the address will be useless, unless you will go guessing or you saved the same exact source and didn't change/update any package.

 

And that why i use dedicated debugging and troubleshooting library and highly recommend it, no matter how tried to remember to save the source there is a chance that you will have different line, hence you lost the ability to find the bug to fix it.

 

Also the CPU registers, assembly with stack have great value as they needed to understand more complex bugs, like when you are using local variable (on stack) but for some reason the stack have been written (corrupted) by whatever reason (like threading or margin values...) this case will not be easy to understand without the exact assembly instruction (not the pascal line) and the content of the raw stack or with the CPU registers.

  • Like 1

Share this post


Link to post
9 minutes ago, Kas Ob. said:

And that why I use a dedicated debugging and troubleshooting library ...

Can you explain what you mean by that?

 

Share this post


Link to post
5 minutes ago, Tom F said:

Can you explain what you mean by that?

Lets say, EurekaLog and Mdshi, or any other tools that fix these address with source lines.

Share this post


Link to post
28 minutes ago, Tom F said:

if I shipped my app without debug info, and I want to find an address in THAT build

With info in the MAP file for that build.
 

Share this post


Link to post

Subtract $00401000 from the address and look it up in your detailed map file. But yeah, get madExcept or EurekaLog. 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×