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!