-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Templated function not displaying templated variables correctly in watch window #35
Comments
What version are you running? Can you see if the same issue persists on the newest commit in If you pull and build to check this, please rebuild your own program too, to ensure raddbg regenerates the debug info. |
Thanks for the heads up! Yeah, I have noticed that before, although strangely enough, not only in RADDBG. So I'm not sure if it has to do with my own bugs in If you keep seeing that issue, or if you find a solid repro, then please open another issue along with e.g. a RenderDoc capture of the problem, along with your computer's specs (e.g. GPU, driver versions, and so on). Thanks! |
Turned out eastl::atomic has a parent so I guess it can be related to #48 |
Whoa, yeah, that is weird & definitely a different issue - RADDBG is using totally the wrong type info (even though it is visualizing the correct type's name, |
No luck, tried with deleting both PDB and RADDBG files. |
That sounds like exactly the kind of C++ thing that we haven't tested very much, so glad we're hitting this now - I'll work on getting this all straightened out. |
Great! Reproduced. I don't have the crazy |
@MohitSethi99 As of my newest commits, the debugger should no longer display incorrect type info for pointers to pure-virtual classes, but it will not resolve base class pointers to their appropriate derived class types (based on the vtable function pointer), in the same way that VS does. That feature is a bit more involved; I've made significant progress but not quite done yet. Just giving you an update. (If it doesn't work the first time, this may be because part of the fix involved a change to the PDB -> RADDBG converter. Before reporting extra issues, just run the converter again by deleting your existing |
Okay, that issue should be fixed as of a0a6fc0. Still working on auto-casting to the derived type based on the vtable pointer, stand by... Thanks for bearing with me! |
Working as expected now, no worries, please take your time :) |
Wrapping up now. Base class pointers to derived class instances should shortly be detected by the debugger, implicitly casting the pointer to the derived type automatically (this can be casted away to the base class type if needed). 20240117_114434.mp4 |
Alright, that is in as of d3931fd. Closing this issue now. |
Yeah @MohitSethi99, this case is - as far as I know - effectively not analyzable from a debugger, because there is no virtual table pointer implicitly inserted by the compiler in an instance of |
Sorry about naively pointing to the issue without checking in VS and thanks for all the info :) |
No worries, glad I could help! |
Hey, first off congratz on release!
Anyways, I have this templated function that creates a "T obj", where 'T' is the template typename.
Inspecting "obj" in the watch window shows nothing. Doing "(T *)&obj" says T is an unknown identifier. I thought maybe template support isn't their yet but what's interesting is that explicitly casting "&obj" to the instantiated type only shows parts of the struct members ... not all. Here are pictures of watch window in raddbg and visual studio
The text was updated successfully, but these errors were encountered: