Generating the call graph from elf binary file
I am new to Mac OSX, and I wonder if Xcode can generate, for a given C source code, the call graph of the program in a visual way. I also wonder if for each function, and after a run, whether it can also print the%time spent on the function.
- Windows 32-bit application here
- macOS Mojave application here
It requires following library to build the code.
- uthash: hash library https://troydhanson.github.io/uthash/userguide.html
- PCRE: Perl Compatible Regular Expressions https://www.pcre.org/
Install the PCRE library to /usr/local directory.
Checkout the repository and initialize all submodules
build
- Generate call graph
- Generate call tree
- Recursive detection
- Calculate the stack usage
This is an example to show the call tree of RISC-V's dhrystone diag. Using binutils to generate the assembly file
Generate the Call-Graph of VCG file
This is an example of call graph of RISC-V's dhrystone.
Generate the Call-Tree of VCG file
This is an example of a call tree of RISC-V's dhrystone, and the red arc represents the call path used by the largest stack
(Note: This is a static analysis and is inaccurate if an indirect function call or recursion is detected.)
Recomment use yComp to browse the VCG file.
- Generating the call stack for ARM (experimental)
MIT license
-->To access and manipulate a Microsoft Graph resource, you call and specify the resource URLs using one of the following operations:
- GET
- POST
- PATCH
- PUT
- DELETE
All Microsoft Graph API requests use the following basic URL pattern:
For this URL:
![Call Graph For Mac Call Graph For Mac](/uploads/1/2/6/3/126393204/221166792.gif)
https://graph.microsoft.com
is the Microsoft Graph API endpoint.{version}
is the target service version, for example,v1.0
orbeta
.{resource}
is resource segment or path, such as:users
,groups
,devices
,organization
- The alias
me
, which resolves to the signed-in user - The resources belonging to a user, such as
me/events
,me/drive
orme/messages
- The alias
myOrganization
, which resolves to the tenant of the organization signed-in user
[query_parameters]
represents additional query parameters such as$filter
and$select
.
Optionally, you can also specify the tenant as part of your request.When using
me
, do not specify the tenant.For a list of common requests, see Overview of Microsoft Graph.Microsoft Graph API metadata
The metadata document ($metadata) is published at the service root.For example, you can view the service document for the v1.0 and beta versions via the following URLs.
Microsoft Graph API
v1.0
metadata.Microsoft Graph API
beta
metadata.The metadata allows you to see and understand the data model of Microsoft Graph, including the entity types and sets, complex types, and enums that make up the request and response packets sent to and from Microsoft Graph.You can use the metadata to understand the realtionships between entities in Microsoft Graph and establish URLs that navigate between entities.This navigation-based interconnectedness gives Microsoft Graph its unique character.
Path URL resource names, query parameters, and action parameters and values are case insensitive.However, values you assign, entity IDs, and other base64-encoded values are case-sensitive.
The following sections show a few basic programming pattern calls to the Microsoft Graph API.
Navigate from a set to a member
To view the information about a user, you get the
User
entity from the users
collection to the specific user identified by its identifier, using an HTTPS GET request.For a User
entity, either the id
or userPrincipalName
property can be used as the identifier.The following example request uses the userPrincipalName
value as the user's id.If successful, you should get a 200 OK response containing the user resource representation in the payload, as shown as follows:
Project from an entity to properties
![Call graph for mac download Call graph for mac download](/uploads/1/2/6/3/126393204/234133743.png)
To retrieve only the user's biographical data, such as the user's provided About me description and their skill set, you can add the select query parameter to the previous request.For example:
The successful response returns the 200 OK status and a payload of the following format:
Here, instead of the entire property sets on the
user
entity, only the aboutMe
, displayName
, and skills
properties are returned.Traverse to another resource via relationship
A manager holds a
directReports
relationship with the other users reporting to him or her.To query the list of the direct reports of a user, you can use the following HTTPS GET request to navigate to the intended target via relationship traversal.The successful response returns the 200 OK status and a payload of the following format:
Similarly, you can follow a relationship to navigate to related resources.For example, the
user => messages
relationship enables traversal from an Azure AD User to a set of Outlook mail messages.The following example shows how to do this in a REST API call:The successful response returns the 200 OK status and a payload of the following format:
Project from entities to properties
In addition to projection from a single entity to its properties, you can also apply the similar
select
query option to an entity collection to project them to a collection of some of their properties.For example, to query the name of the signed-in user's drive items, you can submit the following HTTPS GET request:The successful response returns a 200 OK status code and a payload containing the names and types of the shared files, as shown in the following example:
Query a subset of users with the filtering query option
To find the employees of a specific job title within an organization, you can navigate from the users collection and then specify a filter query option.An example is shown as follows:
The successful response returns the 200 OK status code and a list of users with the specified job title (
'Helper'
), as shown in the following example:Call actions or functions
Microsoft Graph also supports actions and functions to manipulate resources in ways that are not a simple fit with standard HTTP methods.For example, the following HTTPS POST request lets the signed-in user (
me
) send an email message:The request payload contains the input to the
sendMail
action, which is also defined in the $metadata.Use Microsoft Graph client libraries
Like the power and ease of SDKs? While you can always call Microsoft Graph using the REST API, we also provide SDKs for many popular platforms.
Explore our code samples and SDKs.