Can't build my plugin's Solution in Visual Studio 2019 after updating to C4D 2024.3.1
-
Hey guys,
I'm not sure exactly if this is a Visual Studio 2019 issue or a Cinema 4D issue...
I've been working on my plugin for months now and throughout the plugin's development, I've updated from 2024.1.0 to 2024.3.1. None of the Cinema 4D updates have ever caused any problems in regards to my plugin development, until now.
As of this morning, when building my solution in Visual Studio 2019, I get the error message: "Cinema 4D.exe has triggered a breakpoint."
Visual Studio 2019 then opens a new tab named "No Symbols Loaded", which contains the message "application_opt.pdb not loaded".
Additionally, right before the breakpoint is triggered, I noticed the following message being logged in Visual Studio 2019's "Output" window when building the solution:
Forcing folder to be mounted as database (https://assets.maxon.net/assets/sdkdatabase.db) instead of nullptr objectbase1.hxx(537): CRITICAL: Method net.maxon.interface.nimbusbase.GetGraphNodeFromBaseList@72780fd07b2bfeae not implemented by NimbusBaseStaticImpl (requested by file:///C:/Code/sdk/plugins/example.assets/example.assets.xdl64). [object_impl.cpp(913)] Cinema 4D.exe has triggered a breakpoint.
I have spent the last 1 hour and a half on Google reading StackOverflow threads and I have tried multiple things, none of which have resolved my problem.
I have not made any changes to my code after updating Cinema 4D to 2024.3.0 and 2024.3.1. All I did was open Visual Studio 2019 and click "Local Windows Debugger" to launch Cinema 4D.
Any insight or guidance would be immensely helpful. I wonder if I am the only one running into this issue since the latest update?
Thank you!
-
Hey @sasha_janvier,
Thank you for reaching out to us. Just in case you are still working on this: You won't find here an answer on StackOverflow, and this is not a VisualStudio issue. You cannot do much on your own here, and I am 99% sure what the issue is. But I have to confirm my hunch first.
I will come back today with a complete answer.
Cheers,
Ferdinand -
Hello @sasha_janvier,
thank you for bringing this to our attention. The main issue is here that we introduced an ABI incompatibility between 2024.2 and 2024.3. This will be hot fixed in the next weeks, in the mean time you can either not debug against 2024.3, exclude
example.assets
from your solution, or simply ignore the problem and hit continue (the green arrow in Visual Studio) once you hit the critical stop upon running a debug session. For details, please see our service announcement about the issue.Your Questions
Visual Studio 2019 then opens a new tab named "No Symbols Loaded", which contains the message "application_opt.pdb not loaded".
The error occurs in the binaries of Cinema 4D. Whenever you encounter a critical error, critical stop, or debug stop in a binary for which you do not have the source code or a symbols database, Visual Studio will open this window.
When you do not have the symbols for a binary your are debugging, you will only see memory offsets in for example a call stack and not the symbols. I.e., not
Cinema 4D.exe!FancyClass.FancyFunction()
butCinema 4D.exe!00007ff7a8109709
. This is normal, we do not ship the symbol database of Cinema 4D (theapplication_opt.pdb
) as this would give a deeper insight into our internal code base than we are willing to give.Forcing folder to be mounted as database (https://assets.maxon.net/assets/sdkdatabase.db) instead of nullptr.
While I could reproduce the ABI problem, I could not reproduce this and I did a lot of testing of this with multiple SDKs today. This means that you failed to load the SDK asset database. Due to the ABI problem, it is currently not possible to truly test the Asset API examples in .3, but in .2 everything is working fine.
And since this is just the availability of an online resource, I would think that this is rather a problem on your side than a problem of 2024.3.
- Do you see the SDK asset database in 2024.2?
- Are you using any firewalls or VPNs that might restrict access to that URL?
- FYI: It is normal that your browser will tell you that access failed when you try to open
https://assets.maxon.net/assets/sdkdatabase.db
in the browser.
Cheers,
Ferdinand -
Wow, thank you very much, @ferdinand! This was extremely insightful and informative. I didn't know what
application_opt.pdb
was until I read your message. Thank you.I manually excluded/unchecked
example.assets
from my solution and rebuilt my solution and while this got rid of the"Forcing folder to be mounted as database (...assets/sdkdatabase.db) instead of nullptr"
error, theobjectbase1.hxx(537)
error (which triggers a breakpoint), as well as the Symbol error are still there (the latter being expected I guess).Do you see the SDK asset database in 2024.2?
In the
SDK > Assets folder
, I am seeing 11 presets divided in multiple categories, .e.g "Model" (1 item), "Material" (4 items), "Scene" (1 item), "Node" (1 item), "Node Operator" (1 item) and "Image Media" (3 items).That said, I can confirm that the folder
SDK > C++ > Asset API Examples
is completely empty.Are you using any firewalls or VPNs that might restrict access to that URL?
My firewall has remained untouched and no VPNs or anti-virus/spyware software are blocking requests to maxon.net.
For the time being, although inconvenient and dare I say a bit annoying, I can hit "Continue" in Visual Studio after the breakpoint is triggered.
I wish I could revert back to 2024.2, but I guess I need to message Maxon's team support to do so?
I guess I could also test with 2023, but that would be less than ideal.
Thank you once again for everything, @ferdinand. I really appreciate your assistance.
-
Hey,
@sasha_janvier said in Can't build my plugin's Solution in Visual Studio 2019 after updating to C4D 2024.3.1:
I manually excluded/unchecked example.assets from my solution and rebuilt my solution and while this got rid of the "Forcing folder to be mounted as database (...assets/sdkdatabase.db) instead of nullptr" error, the objectbase1.hxx(537) error (which triggers a breakpoint), as well as the Symbol error are still there (the latter being expected I guess).
You must be doing something wrong then because I tripple checked that the SDK does not contain any other uses of
NimbusBaseInterface
. Removingexample.assets
will stop the error from showing up. Possible reasons for your ongoing problem could be:- You did not properly exclude
example.assets
, there should be no module of that name in the modules section of the solution explorer. - You did not remove the binary. When you have compiled the solution before, and there is still the physical file
C:/Code/sdk/plugins/example.assets/example.assets.xdl64
on your disk, Cinema 4D will of course still load it when you just have setC:/Code/sdk/plugins/
as its plugins/modules directory. Simply delete the file. If you want to be extra nice, you could also delete the wholeexample.assets
folder and drag in a fresh one from your sdk.zip. Doing that would ensure that you also delete all build fragments and not only the binary. But that is not really necessary.
Will answer the remaining questions on Monday.
Cheers,
Ferdinand - You did not properly exclude
-
Hey @sasha_janvier
to answer the remaining topics:
In the SDK > Assets folder, I am seeing 11 presets divided in multiple categories, .e.g "Model" (1 item), "Material" (4 items), "Scene" (1 item), "Node" (1 item), "Node Operator" (1 item) and "Image Media" (3 items). That said, I can confirm that the folder SDK > C++ > Asset API Examples is completely empty.
That is normal, that is how the SDK database should look like. The C++/Python sections are filled when you run some of our code examples.
My firewall has remained untouched and no VPNs or anti-virus/spyware software are blocking requests to maxon.net.
Hm, since you can actually load the SDK database, this makes sense. It is still odd that you have that database mounting error in your console. Are you sure that it only happens when debugging
2024.3.X
? Or does it also happen on older versions for you?I wish I could revert back to 2024.2, but I guess I need to message Maxon's team support to do so?
I have sent you a download link via PM which should work. If it does not, yes, you would have to contact user support.
PS: But when everything goes well the hotfix should be here quite soon.
Cheers,
Ferdinand -
-
Hello @sasha_janvier,
your core issue has been hot fixed in 2024.3.2. See our announcment for details.
Cheers,
Ferdinand -
@ferdinand Yay! Amazing. I can confirm that my solution builds without any problems in 2024.3.2.
Big thanks to you and the dev team at Maxon!