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
[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]
可以看
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]