`
文章列表
1 headers.S:bootsect_startbootsect_startstart2   (0)_start   (512)start_of_setupvoid main(void) : main.c 2 main.c:main->go_to_protected_modego_to_protected_mode() pm.c: -> protected_mode_jump->code32_start protected_mode_jump(boot_params.hdr.code32_start,       (u32)&boot_params + (ds ...
  1、etop 显示erlang进程信息的工具,类似于unix下的top   :进程被调度的时间,进程被执行的reductions,进程所占的memory,进程消息队列长度   :运行时可以配置lines、interval、accumulate、sort   :可以打印到文件   要显示进程名,需要在启动进程时加一个别名   2、pman 查看本地或远端节点的进程。主要目的是通过“探测进程状态”和“跟踪进程事件”来定位错误的代码。 瓶颈、未读消息、bad memory handling,也可以通过pman解决。   a、启动 b、(可以先隐藏系统进程)trac ...

ldd -r abc.so

       -r --function-relocs               Perform relocations for both data objects and functions, and report any missing objects or functions (ELF only). 例子: lilong@linux:~/log_client/all_in_one/logclientdrv> ldd -r LogClientDrv.so     linux-gate.so.1 =>  (0xffffe000)     liblogclient2.so => ...
获取label的地址   1 #include<stdio.h>  2 #include <stddef.h>   3   4 #define LabelAddr   5 main()   6 {   7     int i = 0;   8     printf("hello world!\n");  9     printf("label_abc=%d\n", &&label_abc); 10 //    i = &&label_abc; 11 //    got ...
VC中dll的使用方式 1 首先生成dll 在vc中新建win32 dll项目,定义函数,如下: #include <windows.h> __declspec(dllexport) int add(int a, int b) { return a+b; } 需要用__declspec(dllexport)声明哪些函数是要在dll中export的。 之后编译生成dll。 用vs自带的Dependency Walker可以看到函数被export了。 2 使用dll 先用LoadLibrary加载动态库: HINSTANCE hdll = LoadLibrary("d ...
linux下动态库的编译 1 实践 test_cl.c:   1 #include<stdio.h>   2 #include <stddef.h>   3   4 extern int add(int a, int b);   5 #define LabelAddr   6 main()   7 {   8     int i = 0;   9     printf("hello world!\n"); 10     printf("label_abc=%d\n", &&label_abc); 11 // ...
1、下载 expat.sourceforge.net/ http://sourceforge.net/projects/expat/ 下载windows平台的exe版本 2、安装 D:\Program Files\Expat 2.0.1 Bin下是libexpat.lib和libexpat.dll文件 Doc下文档 Source下可以参考最简单的outline.c 3、使用 在vs(2008)中新建window console工程,把Expat 2.0.1\Source\examples\outline.c加入到工程的源文件中; 把Expat 2.0.1\Source\lib\expat.h ...
关键的两个步骤是: 1、 修改configure.scan为configure.ac,需参考autoconf.pdf AC_CONFIG_SRCDIR 是指定源文件路径 AM_INIT_AUTOMAKE是make dist时使用 等等 2、 写Makefile.am,需参考automake.pdf bin_PROGRAMS表示生成的可执行文件名 binfilename_SOURCES表示生成binfilename使用的源文件 等等
1 、etop和getop\erl5.7.2\lib\observer-0.9.8.1\priv\bin\需设置node,etop.bat –node nodename@domain统计项有:Load: cpu procs runqMemory: total binary processes code atom etsPID (进程名或初始函数) Time(us) Reds Memory MsgQ CurrentFunc 如果要把一次结果输出到文件中,可以使用dump(File)方法;如果要把结果全部输出到文件中,可以使用 >erl -sname etop -hidden -noshe ...

erl_eval:exprs

1、 erl_scan:string(String) -> erl_parse:parse_exprs(Ts) -> erl_eval:exprs(Expr, [])   2、 io:parse_erl_exprs(Prompt, StartLine) -> erl_eval:exprs(Expr, [])
lists_reverse_2代码: 熟悉list的操作,例如is_nil(list)is_not_list(list) list_val(list) 返回Eterm*make_list(Eterm* hp) 返回Eterm list CAR(Eterm*)CDR(Eterm*)CONS(Eterm* hp, Eterm* car, Eterm* cdr)   进程堆的操作:HEAP_TOP(BIF_P)HeapWordsLeft(BIF_P)   bif的操作:BIF_ALIST_2BIF_ARG_1BIF_RET(BIF_ARG_2)BIF_ERROR(BIF_P, BADAR ...

写自己的bif

http://mryufeng.iteye.com/blog/434167
1、erlang端的编写 http://www.iteye.com/topic/182040 打开多个port,使用supervisor、pg2等 erlang为与外部通信,需写port驱动,主要考虑下面的因素:0、 和什么程序通信(perl)1、 如果外部程序crash,要可以重启它;2、 为了使串行访问不引入系统瓶颈,需要启动多个拷贝; 每种port对应一个supervisor,它监督一个process group,其中每个process对应一个port(调用open_port和port_close),每个process(对应port)是一个gen_server。 为了统一管理多种 ...

diff和patch说明

先参见wiki的附件和一个网上的说明(转):见附件。   说明两点: 1、使用diff –u是通用格式(有---和+++的,patch使用此格式),否则是>和<的形式。   2、举个例子,说明patch文件中的内容含义: --- lib/inets/src/http_client/http_uri.er
新建环境变量HOME,其下保存文件.emacs,内容如下 ;; erlang mode (setq load-path (cons  "D:/Program Files/erl5.7.1/lib/tools-2.6.4/emacs" load-path))(setq erlang-root-dir "D:/Program Files/erl5.7.1/")(setq exec-path (cons "D:/Program Files/erl5.7.1/bin" exec-path))(require 'erlang-start) ...
Global site tag (gtag.js) - Google Analytics