Tom F 83 Posted August 4, 2021 (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? Any opinions here on EurekaLog vs MadExcept for distributing with a Win 32 app to help with situations like this in the future? Edited August 4, 2021 by Tom F Share this post Link to post
Stano 143 Posted August 4, 2021 First of all, have a detailed statement sent to you. Eurekalog has a few videos. Look at them. Share this post Link to post
Tom F 83 Posted August 4, 2021 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
Uwe Raabe 2057 Posted August 4, 2021 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
Stefan Glienke 2002 Posted August 4, 2021 (edited) Whenever you stop at some breakpoint you can use it, make sure to prepend $ when typing the address because hexadecimal Edited August 4, 2021 by Stefan Glienke 1 Share this post Link to post
Tom F 83 Posted August 4, 2021 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
Tom F 83 Posted August 4, 2021 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
Stefan Glienke 2002 Posted August 4, 2021 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. 1 Share this post Link to post
Stano 143 Posted August 4, 2021 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. 2 Share this post Link to post
Guest Posted August 4, 2021 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. Share this post Link to post
Tom F 83 Posted August 4, 2021 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
Guest Posted August 4, 2021 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
FredS 138 Posted August 4, 2021 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
David Heffernan 2345 Posted August 4, 2021 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