Community
cancel
Showing results for 
Search instead for 
Did you mean: 
zgzg2020
Beginner
65 Views

What are the proper settings for Call Graph to get the path to the root always?

Hello,
I have done Call Graph, ProjectX, and in the node view window the nodes were always connected to their callers/callees. Most importantly, when I do a Find for a function, then double click it in the Function Window above, the designated node of the function pops-up in the node window already connected all the way to its original Thread.

However, I did a new Call Graph, ProjectZ, in the node view I get all the Threads lined up vertically. And, all of them are set as single nodes without any exntensions (callees). Moreover, when I do a Find, double click a function, I get taken to the designated node of that Functions, however that node is completely isolated, no extension in any directed, an island.

My question is how do I set ProjectZ to become like ProjectX? Or, more importantly, I want to be able to do a Find, click on a function from the Function Window above, and I get taken directly to the designated function node, whereas that node automatically has an extended path all the way to the Mother Thread.
0 Kudos
4 Replies
Peter_W_Intel
Employee
65 Views

Quoting - zgzg2020
Hello,
I have done Call Graph, ProjectX, and in the node view window the nodes were always connected to their callers/callees. Most importantly, when I do a Find for a function, then double click it in the Function Window above, the designated node of the function pops-up in the node window already connected all the way to its original Thread.

However, I did a new Call Graph, ProjectZ, in the node view I get all the Threads lined up vertically. And, all of them are set as single nodes without any exntensions (callees). Moreover, when I do a Find, double click a function, I get taken to the designated node of that Functions, however that node is completely isolated, no extension in any directed, an island.

My question is how do I set ProjectZ to become like ProjectX? Or, more importantly, I want to be able to do a Find, click on a function from the Function Window above, and I get taken directly to the designated function node, whereas that node automatically has an extended path all the way to the Mother Thread.

I try to understand your concerns correctly. I guess that projectZ is a multi-threaded application, so Call Graph result displayed many "root" nodes named "Thread_x". Yes, the user could only see one isolated node - usually it is GetModuleHandleA() function which has no extensions (callees). The user has to right-click on threads' root node and select "Show max path to bottom"todisplay critical path to leaf in this thread. That is to showusers high CPU consumptions in code.

By the way, the useralso can find any function inspecific thread thenright-click on that functionto select "Show max path to bottom" or "Show max path toroot" to know the path.

Regards, Peter
zgzg2020
Beginner
65 Views

Quoting - zgzg2020
Hello,
I have done Call Graph, ProjectX, and in the node view window the nodes were always connected to their callers/callees. Most importantly, when I do a Find for a function, then double click it in the Function Window above, the designated node of the function pops-up in the node window already connected all the way to its original Thread.

However, I did a new Call Graph, ProjectZ, in the node view I get all the Threads lined up vertically. And, all of them are set as single nodes without any exntensions (callees). Moreover, when I do a Find, double click a function, I get taken to the designated node of that Functions, however that node is completely isolated, no extension in any directed, an island.

My question is how do I set ProjectZ to become like ProjectX? Or, more importantly, I want to be able to do a Find, click on a function from the Function Window above, and I get taken directly to the designated function node, whereas that node automatically has an extended path all the way to the Mother Thread.

I try to understand your concerns correctly. I guess that projectZ is a multi-threaded application, so Call Graph result displayed many "root" nodes named "Thread_x". Yes, the user could only see one isolated node - usually it is GetModuleHandleA() function which has no extensions (callees). The user has to right-click on threads' root node and select "Show max path to bottom"todisplay critical path to leaf in this thread. That is to showusers high CPU consumptions in code.

By the way, the useralso can find any function inspecific thread thenright-click on that functionto select "Show max path to bottom" or "Show max path toroot" to know the path.

Regards, Peter

I try to right-click->"Show max path to bottom/Show max path to root", but nothing changes, does not extend. Is there a difference between the evaluation version and the paid one?
By the way, when I open the project, I get a "WARNING: The collection data size is big. Critical path will be not available in call graph view.", does that have anything to do with my problem?
Peter_W_Intel
Employee
65 Views

Quoting - zgzg2020

I try to right-click->"Show max path to bottom/Show max path to root", but nothing changes, does not extend. Is there a difference between the evaluation version and the paid one?
By the way, when I open the project, I get a "WARNING: The collection data size is big. Critical path will be not available in call graph view.", does that have anything to do with my problem?

Hi,

I think thatit should be caused byyour program specific. Usually the warning message should be not there.

I suggest you to modify this call graph activity, Advanced Activity Congiguration->Configure...->change someSystem DLLs' instrumentation level from "Exports" to "Minimal" to reduce workloads which are not your code relevant. Hope to avoid this warning message.

You canselect your_prog.exe in "Configure Call Graph" then click "Functions..." to verify ifyour hot functions were instrumented successfully.

By the way, do you use latest product v9.1 Update 2? Just a reminder that you have to compile code with "/Zi" compiler option, and "/DEBUG", "/Fixed:no" Linker options.

Is it possible that you can attach your program (EXE/DLL/PDB files)with selecting"Reply is Private"? So I can investigate on my side.

Regards, Peter
zgzg2020
Beginner
65 Views


Hi,

I think thatit should be caused byyour program specific. Usually the warning message should be not there.

I suggest you to modify this call graph activity, Advanced Activity Congiguration->Configure...->change someSystem DLLs' instrumentation level from "Exports" to "Minimal" to reduce workloads which are not your code relevant. Hope to avoid this warning message.

You canselect your_prog.exe in "Configure Call Graph" then click "Functions..." to verify ifyour hot functions were instrumented successfully.

By the way, do you use latest product v9.1 Update 2? Just a reminder that you have to compile code with "/Zi" compiler option, and "/DEBUG", "/Fixed:no" Linker options.

Is it possible that you can attach your program (EXE/DLL/PDB files)with selecting"Reply is Private"? So I can investigate on my side.

Regards, Peter
Thank you very much for your very detailed reply. I will try the options and configurations you mentioned here. And, if it doesn't help the situation, I will post the files you requested.

Thanks again,
Reply