Comments
Sort by recent activity
In case anyone else has this problem, Alex had a look into the matter. He found that SmartAssembly was getting confused counting when it was trying to add the improved version the string encoding to strings when they are in the global namespace and class ("<module>").
The fix should be included in a forthcoming update (provisionally 5.2)
The two options I can suggest in the meantime:
- Use the standard version of string encoding
- Move the strings from the global namespace and class / comments
In case anyone else has this problem, Alex had a look into the matter. He found that SmartAssembly was getting confused counting when it was trying to add the improved version the string encoding t...
Once you are about to send out a release just run the command line version of SmartAssembly (SmartAssembly.com) with the switch /markasrelease and the parameter the path of the assembly you are about to release.
e.g.
SmartAssembly.com /markasrelease MyExeFile.exe
There is more information about the command line version in our support pages.
Note 1:
Information not marked "as release" is deleted if it is not accessed (i.e. exceptions reported) for 15 days. This is configurable, so if you know that it will take longer than 15 days between building your application and marking it for release then you should extend the time. In the SmartAssembly.settings file (which will either be where you have installed SmartAssembly on XP or in "C:\ProgramData\Red Gate\SmartAssembly 5\" on Vista / Win 7) in the "Options" section change or add a "Maps" node with the attribute ObsoleteAfterNDays="x" where x is the number of days.
e.g.
<SmartAssembly.Settings>
....
<Options>
....
<Maps ObsoleteAfterNDays="30" />
</Options>
</SmartAssembly.Settings>
Note 2:
This is only relevant if you are using the Error Reporting feature of SmartAssembly, if you are using the ASCII encoding to use the more traditional Stack Trace Decode feature you don't need to worry about this. / comments
Once you are about to send out a release just run the command line version of SmartAssembly (SmartAssembly.com) with the switch /markasrelease and the parameter the path of the assembly you are abo...
You can change the folder to save the map files by opening the database (in SQL Server Management Studio or similar). In the table Information there is the field "MapFolderNetworkPath", you just need to change the first record to the path you wish.
It was a usablity against integrety and security issue that we discussed during testing. The feeling was that we didn't want to make it a one click process because otherwise any user could alter it and you could end up with lots of maps files in lot of different places which SmartAssembly couldn't find. / comments
You can change the folder to save the map files by opening the database (in SQL Server Management Studio or similar). In the table Information there is the field "MapFolderNetworkPath", you just ne...
It is a nice idea, which unfortunately is not available in the profiler at the moment.
My only slight concern would be how to accurately model the difference reducing the number of hits would make, as the each time a method is called it has the potential to have a completely different control flow and so processing time, and that presumably you would have to change other code in order to have the same eventual output.
However, having said that, there would be a lot of functions where the processing time would be fairly constant and so this could be a really good addition to the profiler.
The developers keep a close eye over these forums so they will definitely look into it for future versions.
One thing that you may wish to try is to changing to display absolute (ticks or milliseconds) times rather than percentages, as this will allow you to see the time taken for each hit. It is not as nice and interactive as your suggestion, but it will give you some times to compare the your existing solution to any changes. / comments
It is a nice idea, which unfortunately is not available in the profiler at the moment.
My only slight concern would be how to accurately model the difference reducing the number of hits would make,...
That icon is for a private static variable definition (e.g. the code behind it will be something like "private static string _strFooBar;") / comments
That icon is for a private static variable definition (e.g. the code behind it will be something like "private static string _strFooBar;")
After speaking to Philipee.
The failure occurred when trying to decompile an assembly with a member variable initialised to a lambda expression. This gave a "System.InvalidOperationException: Stack empty" exception message.
The workaround is to decompile the assembly to C# 2.0 or Visual Basic 8.0 (i.e. a language without lambda expressions).
Hope this helps anyone who comes across this error message. / comments
After speaking to Philipee.
The failure occurred when trying to decompile an assembly with a member variable initialised to a lambda expression. This gave a "System.InvalidOperationException: Stack...
What type of application are you trying to debug (a web app / desktop / windows service)?
We have come across this problem on web applications where the multi-threaded version of the garbage collector (serverGC) can cause problems and reverting to the standard workstation garbage collector can often fix this. Please see http://support.microsoft.com/kb/911716 for the instructions on how to change the garbage collector while running the profiling.
As most of the ASP.NET settings can be set in lots of different ".config" files you may also need to check and set the serverGC tag in the "global" web.config in the CONFIG folder of the .NET installation, in Machine.config and the local web.config.
There definitely should be an update available, as the latest version of ANTS Memory Profiler is 5.2.0.49. Quite why it should not find any updates I am not sure, and I apologise for that.
To manually update the program you can download and install the trial edition from our website, this will update your edition to the latest version. / comments
What type of application are you trying to debug (a web app / desktop / windows service)?
We have come across this problem on web applications where the multi-threaded version of the garbage collec...
The two really useful graphs in ANTS when you are searching for this type of problem is the "Clas Reference Explorer" and the "Object Retention Graph".
If you select either the EventHandlerList+ListEntry or the PropertyStore in the "Class List" and then click on "Class Reference Explorer" analysis. This will show you the classes that are referenced or which it is referenced by - so for EventHandlerList+ListEntry you will get the type of EventHandlers that are contained in the EventHandlerLists - this will give you some clues.
If you then select an instance of either the EventHandlerList+ListEntry or the PropertyStore classes in the "Instance List" and then go to the "Object Retention Graph" this will should exactly what is keeping that instance in memory.
There are lots of likely causes and the best way to be sure is to look at the graphs and just gradually work through them.
Glad you are enjoying using our software. / comments
The two really useful graphs in ANTS when you are searching for this type of problem is the "Clas Reference Explorer" and the "Object Retention Graph".
If you select either the EventHandlerList+Lis...
Sorry the forums seem to have cut off the bottom of your logs.
The usual cause of a MSI Error 1603 is actually an error code 2738.
Hopefully if you look down your full logs it will have a line with this error code in, if not could you post the error code. The line you will be looking for will look like:
<date and time>: Product: <name of product> -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is <error code>. The arguments are: <some arguements>
If it is an error code 2738 then it is a problem with a partially disabled VBScript dll.
The solution is to perform the following operation, at the command-prompt, running as adminstrator, type:
cd C:\WINDOWS\system32
REGSVR32.EXE VBSCRIPT.DLL
Once that is done you should get a dialog saying that the DLL was registered successfully.
As you are running a 64-bit version of Windows, you then have to do the virtually the same thing again only this time
cd C:\WINDOWS\SysWOW64
REGSVR32.EXE VBSCRIPT.DLL
In some cases, this is not sufficient, as there is a special case in which the VBScript components are registered in a way that does not allow VBScripts to run from inside a Windows Installer package with elevated privileges. To fix this, look for the following registry keys and delete them if they exists:
HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
and (as you are on a 64-bit Windows)
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}
Then you will need to re-register the dll (re-run the first above commands)
Hope this helps / comments
Sorry the forums seem to have cut off the bottom of your logs.
The usual cause of a MSI Error 1603 is actually an error code 2738.
Hopefully if you look down your full logs it will have a line with...
Thanks for the posts. We are listening and we are sorry - the next version of Reflector currently in EAP asks the user before adding the Visual Studio add-in.
It is nice and easy to remove the add-in:
- Run .NET Reflector V6.1 and go to "Tools" > "Integration options" and then uncheck the Visual Studio integration
Yes we should have made it so that it took 5 clicks to add the add-in, rather than 5 clicks to remove the add-in, but we didn't. / comments
Thanks for the posts. We are listening and we are sorry - the next version of Reflector currently in EAP asks the user before adding the Visual Studio add-in.
It is nice and easy to remove the add-...