Sampling profiler: is there some way to see a disassembly view?

I just found out about these tools today, and I'm pretty impressed. Nice job!

I was wondering if there's any way to see disassembly (e.g. with number of hits on the instructions)?...

And/or is it possible to somehow extract the actual raw data (e.g. EIP's, module info: base-address, version) from the .vsp?

thanks much,
Jon

[343 byte] By [JLibby] at [2007-12-17]
# 1
Thanks very much; glad that you are impressed with the tools.

You mean profiling data for each assembly instruction? We are going to have proflinlg data per line, but that would be source lines. For instruction level data, you can use chip counter profling support.

For module information, you can use the "Group by Module" in the UI or "Module Summary" report if you are doing it from commnad-line to get module wise data. But that will not show you version information; it will show you module ids though.

Also, in other views like function view, calltree, etc. you can add extra columns in the UI to look at module information columns.

Let me know if I misunderstood something or if you need more information on anything.

Thanks
-Munjal

MunjalD at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Performance Tools (Profiler)...
# 2
Thanks much for responding!

Yeah, I mean profiling data for each assembly instruction. I did see that it was possible to navigate to the function within the source file. Are you saying that there will be some way to see the number of hits on the various source lines within the function?

That would be a nice addition... what I was thinking is taking that even a step further, so that it would be possible to show the number of hits on the various assembler instructions within the function (a mixed source/assembler view would really be nice :-)).

Regarding the ability to query "raw data": I was just thinking that if there isn't a way to see distribution of hits within a function, it would be fairly straight-forward to figure it out (i.e. write a simple tool) if it was somehow possible to get at the instruction-address hits and the module info (i.e. version and base address where the module was loaded when the samples were collected). Maybe a command-line option on vsperfreport.exe to output a text-format version of the .vsp file containing the module info and the instruction-address samples (e.g. maybe XML)?
Let me know if any questions, or if I'm misunderstanding something.

thanks,
Jon

JLibby at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Performance Tools (Profiler)...
# 3
Yeah, we are going to have source line level data in the next version.

Regarding, assembly instruction level data; we have a way you can collect machine performance counter data - cache misses, instructions retired, etc. It is not exactly what you are suggesting but it can probably serve the purpose for you before we get such a feature in the next version potentially :). I will take this suggestion for our features in the next version.

Re: querying raw data: there is such data in the collection (.vsp) file; the file contains full stack frames and module information. So you could potentially query the data. But as far as I can tell (I will confirm this with the developer for the feature) there is no APIs provided to read the collection file. So you will potentially have to rely on parsing the raw file.

I will confirm with the developer if we have APIs to read the collection file.

-Munjal

MunjalD at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Performance Tools (Profiler)...
# 4
You indicate that you will have source line profiling in the next version. Can you provide an expected date for the release of the next version?
JWM at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Performance Tools (Profiler)...

Visual Studio Team System

Site Classified