ngx_cycle的初始化及Graphviz dot使用 生成图

本文深入探讨了NGINX源码中全局变量ngx_cycle的初始化过程,并利用Graphviz进行函数调用可视化,提供了详细的功能流程解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nginx源码分析—全局变量ngx_cycle的初始化
可以看
http://www.oschina.net/question/234345_42061
其中有个神器:
用 Graphviz 可视化函数调用
https://www.ibm.com/developerworks/cn/linux/l-graphvis/

http://www.ibm.com/developerworks/cn/linux/l-graphvis/

qemu
http://www.ibm.com/developerworks/cn/linux/l-qemu/


apt-get install graphviz
装dot

#!/bin/sh
gcc -g -finstrument-functions includefunction.c test.c instrument.c -o test
./test
pvtrace test
dot -Tjpg graph.dot -o graph.jpg


[code="java"]
# cat test.c
#include <stdio.h>
#include "hao.h"
int heihei(){
test2();
}

int haha(){
heihei();
printf("haha this is haha\n");
}
int main()
{
heihei();
haha();
printf("Hello World\n");
return 0;
}
----------------------------
# cat includefunction.c
#include <stdlib.h>
#include "hao.h"
int test1(){
printf("this is test1\n");
}
int test2(){
test1();
printf("this is test1\n");
}


-------
#gcc -Wl,-Map=test.map -g -o test test.c

## grep main test.map
0x00000000004003c8 __libc_start_main@@GLIBC_2.2.5
0x00000000004004c4 main

#addr2line 0x00000000004004c4 -e test -f
#

gcc -g -finstrument-functions test.c instrument.c -o test
./test
cat trace.txt
pvtrace test
dot -Tjpg graph.dot -o graph.jpg

[/code]
执行如图
[img]http://dl.iteye.com/upload/attachment/0077/9397/95a8f2ce-caf4-3cfc-b155-69a3abb23871.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值