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


[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]
国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

DIY玩家必备:用SSS1623芯片打造高性价比USB麦克风(附完整电路图)

本文详细介绍了如何利用SSS1623芯片DIY高性价比USB麦克风,包括元件选型、电路设计、PCB布局及调试技巧。通过完整的电路参考设计和实用建议,帮助电子爱好者打造专业级录音设备,实现免驱动即插即用功能。

weixin_29166013的博客 239

graphviz绘制nginx函数调用图

以下是c的版本 c++代码去 [url]http://www.cnblogs.com/lanxuezaipiao/p/3450201.html[/url] codeviz似乎只能支持gcc4.6,好久没更新了, 看这个 [url]https://github.com/Cheukyin/CodeSnippet/tree/master/python/SRCGraphviz/[/url] ...

走在左边 260

保姆级教程:在Windows/Linux双系统下搞定Microsemi Libero SoC v11.8安装与白银版License激活

本文提供了一份详细的Microsemi Libero SoC v11.8在Windows/Linux双系统下的安装与白银版License激活指南。涵盖环境准备、安装流程、License跨平台配置及常见问题排查,帮助开发者高效搭建FPGA开发环境。

weixin_30603633的博客 420

graphviz画带开始和结束节点的自动机

graphviz画带开始和结束节点的自动机终止节点初始节点效果图 终止节点 for s in S: dot.node(name=s.s_name, shape='circle') if s in FS: # 如果该节点在终止状态集,变将shape写成doublecircle dot.node(name=s.s_name, shape=...

dream_three的博客 759

Python办公自动化:用python-docx打造专业级Word表格边框(附完整代码)

本文深入探讨了如何利用python-docx库精细控制Word表格边框,实现办公自动化。通过解析底层XML结构,提供了通用的`set_cell_border`函数,并附上完整代码,帮助用户轻松打造符合商业规范的专业级表格,提升报告、合同等文档的生成效率与视觉效果。

weixin_29089057的博客 546

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1247

图谱导航Graphviz文件生成,转dot类

package com.*.util.generator; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.ut

3165

从模组到集装箱:手把手拆解一个储能BMS的软硬件架构设计与通信组网

本文深入解析储能BMS的软硬件架构设计与通信组网,从电芯采样到系统集成的全链条技术实现。详细介绍了三级硬件架构(AFE、CMU、BMU)的设计要点,以及软件分层实现中的驱动层、应用层核心算法和通信协议栈。通过实战案例分享CAN网络搭建、调试工具链和系统验证测试经验,为储能系统开发提供实用指导。

weixin_30752699的博客 462

通过nginx远程执行shell

saltstack远程执行shell,远程管理等返回json已经很成熟,扩展也很好用 原理其实就是通过网络协议,aes加密后,用python本地执行shell等系统调用 其实nginx也可以做成远程执行shell 利用nginx的request的args参数可以获取url 并自定义解析url的decode方法,比如%20变成空格 方法如下 [code="java"] void h...

走在左边 3980

Python RK3588 MPP 8路视频硬解码!全体目光向我看齐!

本文重写了官方demo、加入了Zlmediakit进行拉流并通过pybind11将代码封装成so库,现在,在python中直接通过import的方式,就能完成基础的拉流解码操作,目前支持8路拉流解码!!!

m0_46303486的博客 4878

STM32CUBEMX | STM32L431RCT6的内部Flash操作

一、STM32CUBEMX配置 1、选择芯片型号: 2、配置时钟源 1、 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC; 2、 如果使用默认内部时钟(HSI),这一步可以略过; 3、配置时钟树 STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可: 4、代码生成设置 点击GENERATE CODE即可生成MDK-V5工程: 二、在MDK中编写、编译、下载用户代码 1、STM32内部Flash及HAL库API 查看所使用芯片的信息,

yongridada的博客 5568

c++内存泄露

转http://www.codeproject.com/Articles/393957/Cplusplus-Memory-Leak-Finder [code="java"] Introduction In this article I will discuss a way to build a memory leak detection program for C and...

走在左边 1958

【FISCO-BCOS】十一、一键部署

一键部署包括以下服务:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE-Sign)。部署成功后,登录此网站:http://localhost:5000 访问WeBASE管理平台。快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。修改节点管理子系统和签名服务组系统的mysql数据库配置。如使用root账户:改为。配置方法:参考如下指令。

naihe_fish的博客 2596

重定向stdout到文件

把stdout重定向到文件 两种方法: 第一种方法没有恢复 通过freopen把stdout重新打开到文件 [code="java"] #include FILE *stream; void main( void ) { stream = freopen( "freopen.out", "w", stdout ); // 重定向 if( stream ...

走在左边 1529

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pthread的pthread_mutex_lock 的使用

参考http://haoningabc.iteye.com/blog/1709157 在c中多线程,打印数据互相不影响的例子 关键点在pthread_mutex_lock 无锁的情况 testptread.c [code="java"] #include #include #include #include "pthread.h" void * process(voi...

走在左边 1115

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

c的指针(转)

忘了转的哪的了,反正很好,希望没侵权 [code="java"]1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: 内存地址→  6      7   8      9   10      11      12       13 ---------------------...

走在左边 952

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

用C语言,实现接收管道输出的结果,并显示

在shell里利用“|”管道干的事情就是io重定向,把“|”命令前的输出重定向到“|”后的标准输入中也就是c程序的stdin流中,所以要实现楼主所得功能程序只要跟原来的样就行了。例如 [code="java"]#include int main(void) { char string[512]; fgets(string ,512,stdin); ...

走在左边 856

malloc和calloc,balloc区别

balloc是新东西吗?apue上没有 [code="java"]三个函数的声明分别是:
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem, size_t elsize);
都在stdlib.h函数库内

它们的返回值都是请求系统分配的地址,如果...

走在左边 817

js备份

[code="java"] GPlayer (WIFI Upload) fabrices-iPhone / Up one Level Reload ...

走在左边 459

c++的反射的demo

c++的反射的demo一个基本例子把这个改造成:调用方不改,底层so可以改的方式 一个基本例子 reflection.cpp // 工厂类的定义 #include <map> #include <iostream> #include <string> using namespace std; typedef void* (*PTRCreateObject)(void); class ClassFactory { private: map<string, PT

走在左边 371

c++primer源码

附件中的zip包为源码

走在左边 359

nginx的helloworld模块的helloworld

经典的nginx的helloworld尝试了一下 过程就是 [code="java"]nginx--->config文件---->module--->command[]函数----->handler | | ctx等 位置等[/code] 函数就是这个n...

走在左边 313

axis2c_helloworld

java的版本请看我的http://haoningabc.iteye.com/blog/975976 参考http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#quick_start 1.下载axis2c-src-1.6.0.tar.gz 2.添加.bashrc mkdir /root/Desktop/axis ...

走在左边 254

ldd和一些算法的网站

参考http://www.ibm.com/developerworks/cn/linux/l-lpic1-v3-102-3/ 查看动态库的依赖关系,都忘了。。。 ldd /bin/ln 动态库配置 动态加载器怎样找到可执行程序?对于 Linux 当中的很多问题, 都在 /etc 当中有相应的配置文件。 事实上,有两个配置文件,/etc/ld/so/conf 以及 /etc/ld.s...

走在左边 239

c的urldecode

[code="java"] #include #include #include void encodeurl(){ int c; char *hex = "0123456789abcdef"; while( (c = getchar()) != EOF ){ if( ('a'

走在左边 229

线程的helloworld

[code="java"] #include #include #include pthread_t appId,bnaId,cryId; int ret; int status=1; void apple(){ while (1){ if (status==1){ status=2; printf("apple\n"); } pthread_y...

走在左边 215
上一篇: gdb笔记
下一篇: source insight快捷键(转)
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值