3ds Max Public Debug Symbols and Plugin testing

Hello again! I am very sorry for not finding time to make a post last week,
but the news of python for 3ds Max might have made up for it. ;-)

Autodesk 3ds Max is a unique product in the company's portfolio. The
engineering team for 3ds Max is keen on helping the developer community as much
as possible. With that, they are providing 3ds Max debug symbols via an online
symbol server. These are public symbols that are stripped, so there is no
source code information obviously. However, the symbols can show you very
quickly were a problem may be coming from, especially given the many different
ways you can derive C++ plugins and utilize the virtual callbacks from 3ds Max.

Christopher Diggins' has a great post about this
here: Debug Symbol Server for 3ds Max 2012.

This article describes the steps to setup and use the symbols to get extra call
stack details when debugging.

Note that one issue you may run into is that not all symbols for each update
or service pack are uploaded. As a result, you may have trouble loading symbols
if you have installed an update and those symbols are not at the symbol
server. When needing the symbols, and you are finding they are not loading
properly, double check your version of 3ds Max – it's a good bet that if you
have an update installed, it's the reason the symbols are not being used. One
option in such a case, would be to go back to the FCS version of 3ds Max.
Generally the FCS symbols are always present from 3ds Max 2012 on.

One easy way to handle this would be to use virtual machine (VM) technology.
By setting up a VM, you could install the FCS version and use the debugging
symbols without disrupting your product development environment where the
updates are installed.

This leads to the second topic regarding testing. Another aspect that 3ds
Max core development has focused on in the past few releases is to improve
stability. The engineering team has made great progress in this area and 3ds
Max 2014 is one of the most stable releases ever. One challenge can actually
come from plugin developers where their plugin will cause 3ds Max to crash, and
then the customer sends a CER (Customer Error Report) into Autodesk. When
reviewing those reports, sometimes it can be hard for our team to know what the
problem is because it may be occurring as a result of a plugin causing the
crash. In these circumstances, we often will directly contact the developer.
But to prevent this from happening in the first place, it is ideal to perform
testing in as many different environments you can.

The virtual machine idea can also help in this aspect. The VM technology can allow
you to more easily test a variety of operating systems and also emulate CPU and
memory configurations. The one drawback is often that the graphics cannot be
handled properly in the VM. However, if you are mainly performing automated
testing, or debugging, this may not be a problem. As a support person, I
use this idea when I feel a need to have a clean environment or to emulate a
customer environment. It works well, with a relatively low investment.

Finally, one additional thought on testing. If you already have a C++
plugin, remember that you can use function publishing to allow MAXScript access
to your features. This benefits the customer by giving them the ability to
script your features. But it also gives you an excellent way to perform automated
testing on your plugin!

I hope you
found this interesting. While writing this article I had to walk down to the
bus stop to meet my son coming home from school. I snapped a few photos while
waiting. The Fall season is fully underway here in Northern New England! Isn't it amazing
to see the different colors? This an example from different Maple trees taken
on the same day! Enjoy!
Leaves


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading