`
haoningabc
  • 浏览: 1485255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
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


[root@killinux dot]# 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;
}
----------------------------
[root@killinux dot]# 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

#[root@killinux dot]# 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


执行如图
  • 大小: 10.5 KB
分享到:
评论

相关推荐

    ngx_devel_kit-0.3.0

    ngx_devel_kit(通常缩写为 NDK)是一个针对Nginx的模块开发工具集,它为构建自定义Nginx模块提供了便利。在Nginx生态系统中,NDK是一个重要的扩展工具,允许开发者利用C语言直接操作Nginx的内部结构,以实现更高级...

    ngx_cache_purge_2.4.2.tar.gz

    这个版本2.4.2的压缩包包含了ngx_cache_purge模块的所有源代码及相关文件,以便开发者在自己的Nginx环境中集成和使用。 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网服务。其内置的...

    ngx_stream_ssl_preread_module调研.docx

    NGX_STREAM_SSL_PREREAD_MODULE 模块调研 NGX_STREAM_SSL_PREREAD_MODULE 是一个基于流媒体(Stream)实现的 SSL/TLS 协议 ClientHello 消息提取模块,主要用于提取 SNI(Server Name Indicate)或者 ALPN...

    ngx_http_proxy_connect_module.zip

    ngx_http_proxy_connect_module是一个针对Nginx服务器的第三方模块,主要功能是支持HTTP代理的"CONNECT"方法。在默认情况下,Nginx仅处理HTTP和HTTPS请求,但不支持通过HTTP代理进行TCP连接,比如SSL/TLS隧道。这个...

    ngx_devel_kit-0.2.19.tar.gz

    3. **ndk_http_post_config**: 在Nginx配置加载完成后调用的回调函数,可用于执行初始化任务。 4. **ndk_push**: 提供了推送数据到客户端的能力,这对于实现Websocket和其他实时通信协议非常有用。 5. **宏定义**: ...

    ngx_lua_module-windows-1.1.2.0

    ngx_lua_module是一款强大的扩展模块,专为Nginx服务器设计,允许在Nginx配置文件中直接嵌入Lua脚本,极大地增强了Nginx的功能和灵活性。这个"ngx_lua_module-windows-1.1.2.0"是该模块的一个Windows版本,适应于...

    ngx_http_consistent_hash-master.zip

    Nginx 支持模块化设计,允许开发者通过编写模块来扩展其功能。ngx_http_consistent_hash 模块是这样的一个例子,它将一致性哈希的功能集成到 Nginx 中。 4. **配置和使用:** 在 Nginx 配置文件中,用户需要引入...

    ngx_http_dav_ext_module.so

    ngx_http_dav_ext_module.so centos7 nginx 1.18 可以作为模块加载

    nginx限制连接数ngx_http_limit_conn_module模块1

    这里的 `$binary_remote_addr` 变量用于表示客户端的 IP 地址,使用它比 `$remote_addr` 更节省内存,因为 `$binary_remote_addr` 的长度固定为 4 字节。 #### 2.2 limit_conn_log_level 指令 **语法:** `limit_...

    ngx_lua资源

    使用这个软件包,开发者可以在 Windows 环境下搭建 ngx_lua 开发和运行环境。 在实际应用中,ngx_lua 可以用于实现以下功能: 1. 动态路由:通过 Lua 脚本实现动态的 URL 重写和分发,提高灵活性。 2. 认证和授权...

    ngx_cache_purge应用插件

    ngx_cache_purge应用插件是针对Nginx服务器的一个扩展模块,主要功能是实现缓存的清理和刷新。在Web服务器环境中,缓存是提高网站性能的重要手段,它能够存储频繁访问的静态资源,减少对后端服务器的压力。然而,当...

    ngx_image_thumb-master.zip

    使用ngx_image_thumb,开发者可以定义图片的缩放比例、裁剪区域等参数,通过URL请求直接由Nginx服务器生成缩略图,而无需通过应用程序层处理。这样可以降低服务器CPU和内存的使用,提高响应速度,并减轻了数据库的...

    ngx_stream_module.so

    nginx1.20.2

    ngx_http_mytest_module.zip_nginx_world

    通过这个示例,你可以学习到如何定义配置指令、解析配置、创建和初始化配置结构体、注册模块函数以及实现请求处理器。这只是一个非常基础的模块,实际的模块可能需要处理更复杂的逻辑,如解析请求头、读取请求体、...

    ngx_lua内幕

    根据给定文件信息,将详细说明ngx_lua的核心技术和开发案例的知识点: 背景 ngx_lua诞生的背景源于传统的Apache+mod_php架构中并发能力不足、内存开销大以及开发和维护困难的问题。传统的服务模型每连接使用一个...

    Nginx模块ngx_req_status

    ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能. 1、按...

    ngx_http_proxy_connect_module, 用于CONNECT请求处理的前向代理模块.zip

    ngx_http_proxy_connect_module, 用于CONNECT请求处理的前向代理模块 名称 此模块为"连接"http方法提供支持,此方法主要用于通过代理服务器进行隧道SSL请求 。 目录 姓名 例子 安装 指令 proxy_connect proxy_...

    ngx_http_subrange_module.zip

    带宽使用和iowait会很高。ngx_http_subrange_module就是为了解决这个问题,它能分割HTTP requests。将大数据量的HTTP请求切分为多个子请求,当下载一个1 G的文件,subrange将从后端主机中下载文件块,比如先获取5 M,...

    ngx_cache_purge-2.0.tar.gz

    ngx_cache_purge-2.0.tar.gz 是一个用于Nginx服务器的模块,它主要功能是实现缓存清理。在互联网服务中,缓存技术被广泛应用于提高网站响应速度和减轻服务器压力,但有时需要及时更新或清除特定内容的缓存,以确保...

Global site tag (gtag.js) - Google Analytics