No source visible in debugger
|
|
Thread rating:  |
George Touchstone - 13 Jul 2005 16:49 GMT I'm working on an InDesign plugin using CW9.5 in MacOS 10.3.9. I have a breakpoint set at the plugin initialization point. All sources have the debug flag on. When I began the project with a modest number of sources, the debugger would come up showing the source code for the routine with the breakpoint. After adding a number of additional modules, the debugger now comes up showing assembly instead. If I recreate the project from scratch, the same thing happens: with few modules debugger shows source code, then when I pass some critical point in total source (or complexity or whatever...) the debugger shows only assembly. Taking a cue from other posts on this subject, I have tried deleting the project data file, restarting CW, restarting the Mac, all to no avail.
At the moment, I'm reduced to debugging with alerts and printf. Any advice would be appreciated.
Thanks for your help,
George Touchstone Sacramento Software Works www.SacraSoft.com
Thomas Engelmeier - 14 Jul 2005 11:28 GMT > routine with the breakpoint. After adding a number of additional > modules, the debugger now comes up showing assembly instead. If I > recreate the project from scratch, the same thing happens: with few > modules debugger shows source code, then when I pass some critical > point in total source (or complexity or whatever...) the debugger shows > only assembly. [...]
> At the moment, I'm reduced to debugging with alerts and printf. Any > advice would be appreciated. IIRC Codewarrior has an internal limit / bug for the amount of symbol data.
The following should be viable workarounds:
- turn off symbols (the Bug icon..) on already (unit-)tested classes
(I am not sure if you get basic "it happened in this routine" information if just traceback tables are embedded into the Plug-In coderesource via linker settings - in contrary to the .xSym file. At least they can be read by your code e.g. to provide an stacktrace when an exception occurs)
- refactor you Plug-In into multiple smaller pieces with less symbols. In the end, you can still combine them into one pseudo-monolithic plugin
Regards, Tom_E
 Signature This address is valid in its unmodified form but expires soon.
MW Ron - 14 Jul 2005 17:59 GMT >I'm working on an InDesign plugin using CW9.5 in MacOS 10.3.9. I have a >breakpoint set at the plugin initialization point. All sources have the [quoted text clipped - 17 lines] >Sacramento Software Works >www.SacraSoft.com As Tom said we had a number of files limit and a number of symbolics limit for the debugger. I know we raised it but maybe you are hitting it again.
the curious part was you couldn't just turn off one or two files when you hit the limit you had to turn off generatiing debug information ona whole lot of files to get it to work then you could add some back in again.
If that isn't it, please let us know more.
Ron
 Signature CodeWarrior Community Forum is a free online resource for developers to discuss CodeWarrior topics with other users and our staff -- http://www.codewarrior.com/community --
Ron Liechty - MWRon@metrowerks.com - http://www.codewarrior.com
George Touchstone - 18 Jul 2005 17:54 GMT In response to Ron's reply: ...we had a number of files limit and a number of symbolics limit for the debugger. I know we raised it but maybe you are hitting it again. ...you couldn't just turn off one or two files when you hit the limit you had to turn off generatiing debug information ona whole lot of files to get it to work then you could add some back in again....
I had previously tried turning off debugging on about half the sources and that didn't help.
I "removed object code", turned off debugging on all sources, turned debugging on in the entry point source and put a breakpoint there. It worked. I then turned on debugging for about half the sources. That also worked. Good enough for now.
Maybe you should raise the limit again. Or, better yet, rewrite so three isn't a limit.
Also, perhaps the debugger could actually give us a clue as to why it's not putting up source? I wasted a lot of time on this. As you may know, the debugging version of InDesign takes several minutes to start up, so trying this and that can be a huge time sink.
As always, thanks for your help,
George Touchstone Sacramento Software Works
boga@mac.com - 19 Jul 2005 09:40 GMT > In response to Ron's reply: > ...we had a number of files limit and a number of symbolics [quoted text clipped - 21 lines] > the debugging version of InDesign takes several minutes to start up, so > trying this and that can be a huge time sink. I don't belive it's the limit thing. We have a huge application (debug + code together) = 150 MB. We've also experienced similar effect (No source just assembly displayed) with very small frameworks. In fact adding more code to the framework made source reappear again in the debugger.
Also we could debug the same framework when loaded into a little test app, but cannot when loaded to our main app.
Regards, Miklos
George Touchstone - 22 Jul 2005 03:18 GMT ...Good enough for now...
I spoke too soon. Now that I've added more features and actually have to find a bug, all I get is assembly, even with only one module selected for debugging.
Do you know how to actually reset this? Do I need to remove objects? Delete the xSym file? Delete the project data folder?
What else can I try?
Is it possible you could provide an alternate build that handles more symbols?
Again, Thanks for your help,
George Touchstone Sacramento Software Works
MW Ron - 22 Jul 2005 16:43 GMT >...Good enough for now... > [quoted text clipped - 14 lines] >George Touchstone >Sacramento Software Works You should first try going to the global settings, and purging the debugger cache in the Debugger settings.
next trash the sym files (completely) from your system
Remove object code and research for files.
Be sure the sym information is being created (check in the bug column).
Be sure all optimizations are off (including any processor optimization and inlining)
if that doesn't work try trashing your data folder and re-searching for files and rebuilding
if that doesn't work try trahsing the Metrowerks prefernces.
Ron
 Signature CodeWarrior Community Forum is a free online resource for developers to discuss CodeWarrior topics with other users and our staff -- http://www.codewarrior.com/community --
Ron Liechty - MWRon@metrowerks.com - http://www.codewarrior.com
George Touchstone - 09 Aug 2005 19:40 GMT After a further email exchange with mwRon and trying a few more things, I've come up with the following observations and a restatement of Ron's suggestions.
MW says no-one at Adobe is complaining about this, but I have heard from at least one other InDesign plugin developer reporting the same problem and asking if I have further insight. That query prompted this update to this NewsGroup thread.
I believe the c++ headers in the InDesign SDK create massive numbers of symbols which in turn exceeds what MW thought was at the time a reasonable limit. Which is in a way an object lesson to all of us about making assumptions about "reasonable limits" in our code.
I am able to debug the sample plugins provided by Adobe in the SDK, and I'm able to debug the smaller modules in my own project. However, in some cases I've combined code from several sample plugins. This results in more header includes that are typically found in the sample plugins. It is these modules that appear only in assemply language in the debugger.
I'm hoping CW10 addresses this.
How to deal with it for now: You have to very selectively enable debugging on a few modules. You have to minimize how many headers you include. Then you have to "reset" the debugger from time to time when it goes over the limit.
How to "reset" the IDE/Debugger:
In Project settings, under Linker, be sure "Generate Sym File" is on
Be sure that the debug column is set for the files you want to debug
In IDE Preferences, Debugger, Global Settings: Purge the debugger cache
Remove object code Trash the sym file Empty the trash
If that doesn't work, something more dramatic: Go to <YourOSXBootVol>/Users/<YourUserName>/Library/Preferences/Metrowerks, Delete "CW IDE 5.5 Prefs" (actual version may be newer) Delete "CW Debugging Cache"
Good luck, and thanks again to Ron for his help,
George Touchstone Sacramento Software Works www.SacraSoft.com George at SacraSoft dot com
Danny at META/DMA - 26 Sep 2005 18:06 GMT I've been running into the exact same problem with debugging an Adobe After Effects plugin -- that is, I can only see disassembly rather than source code in the debugging window. I'm almost positive that this is a CW 9.6 problem. It worked fine in 9.5, and I haven't touched my project until after updating to 9.6, when I could no longer debug. It's a very small project, so I don't think I've hit any kind of header limit. Unfortunately, none of the tricks listed below help at all. My only solution seems to be to revert to CW 9.5 (or XCode), unless anyone has any other ideas. Anyone?
Thanks,
Danny Rosenberg META/DMA
> After a further email exchange with mwRon and trying a few more things, > I've come up with the following observations and a restatement of Ron's [quoted text clipped - 50 lines] > www.SacraSoft.com > George at SacraSoft dot com Ron L - 26 Sep 2005 22:29 GMT I don't think 9.6 changed anything with debugging. It seems to be something on your end. Make sure you aren't following some old file. (that is make sure the file you are debugging is the only one and there isn't an older version in the trash or somewhere). Also be sure that optimizations are not on in your plugin.
Ron
>I've been running into the exact same problem with debugging an Adobe >After Effects plugin -- that is, I can only see disassembly rather than [quoted text clipped - 65 lines] >> www.SacraSoft.com >> George at SacraSoft dot com
 Signature CodeWarrior Community Forum is a free online resource for developers to discuss CodeWarrior topics with other users and our staff -- http://www.codewarrior.com/community --
Ron Liechty - ron.liechty@freescale.com - http://www.codewarrior.com
Danny Rosenberg - 28 Sep 2005 01:24 GMT Actually, I stumbled upon a solution. If I include a single "DebugStr" call anywhere in the program, every source file shows up properly in the debugger. Without it, all I get is assembly code.
Weird.
-- danny
> I don't think 9.6 changed anything with debugging. It seems to be > something on your end. Make sure you aren't following some old file. [quoted text clipped - 13 lines] >> solution seems to be to revert to CW 9.5 (or XCode), unless anyone has >> any other ideas. Anyone? Ron L - 28 Sep 2005 18:15 GMT >Actually, I stumbled upon a solution. If I include a single "DebugStr" >call anywhere in the program, every source file shows up properly in >the debugger. Without it, all I get is assembly code. OK I know about what is going on. We used to have to do this to ensure a plugin was loaded for debugging too.
Ron
>Weird. > [quoted text clipped - 17 lines] >>> solution seems to be to revert to CW 9.5 (or XCode), unless anyone has >>> any other ideas. Anyone?
 Signature CodeWarrior Community Forum is a free online resource for developers to discuss CodeWarrior topics with other users and our staff -- http://www.codewarrior.com/community --
Ron Liechty - ron.liechty@freescale.com - http://www.codewarrior.com
|
|
|