最近更新了一下Ranorex.Keygen,以前提供的工具有个BUG(打开Ranorex Studio项目时候会加载失败),可能有些朋友下载会去没能用成,估计要骂我了。顺道测试了一下 Ranorex 2.1.0.6243 这个版本,目前破解工具也是支持的。
下载文件 (已下载 126 次)最近2009-06-01更新,将Ranorex.Libs.dll 打入包内,供Ranorex.Keygen运行使用。
PS: 顺便添加了一个保存License的按钮。:)
下载文件 (已下载 126 次)PS: 顺便添加了一个保存License的按钮。:)
工具:LeakDiag 可以从微软的FTP进行下载: ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag/
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。
Python 可以用C/C++来写扩展,在已经有C实现代码的时候,用SWIG来自动转换将更加方便。
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
calc.c:
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
#ifndef __CALC_H
#define __CALC_H
typedef struct {
int j;
int k;
} obj;
int add1(int a, int b);
void add2(int a, int b, int *c);
void add3(obj a, obj *b, obj *c);
#endif
calc.c:
#include "calc.h"
int add1(int a, int b) {
return a + b;
}
void add2(int a, int b, int *c) {
*c = a + b;
}
void add3(obj a, obj *b, obj *c) {
c->j = a.j + b->j;
c->k = a.k + b->k;
}
在CSDN上看到一个兄弟的提问,想要控制SVN上传(确切的说应该是提交)文件的大小及类型。想起来自己在管理Bug单的时候也有经常类似审计每次提交,单个C文件的代码变更行数的需求。于是写了一个pre-commit的hook,以备忘。
原贴的地址: http://topic.csdn.net/u/20080404/15/acc7c13b-9079-4241-bcc2-fdb7a80be4a8.html?seed=1212379939
pre-commit 返回非0,则commit失败。
错误信息为stderr的信息。
发现svnlook 还是很强大的,有空得好好研究研究,还有什么奇妙功能可以深入挖掘之。
原贴的地址: http://topic.csdn.net/u/20080404/15/acc7c13b-9079-4241-bcc2-fdb7a80be4a8.html?seed=1212379939
#!/bin/sh
# repot && transaction arguments
REPOS="$1"
TXN="$2"
# svnlook command
SVNLOOK=/usr/local/bin/svnlook
# file filter: we only allow commit .c && .h files.
FILTER='\.(c|h)$'
# max file size in bytes after commit.
MAX_SIZE=102400
# max change per one commit
MAX_CHANGE_LINES=50
files=$($SVNLOOK changed -t $TXN $REPOS | awk '{print $2}')
# check
for f in $files
do
# check file type
if echo $f | grep -Eq $FILTER ; then
# valid file
:
else
echo "File $f is not a .h or .c file" >> /dev/stderr
exit 1
fi
# check file size
filesize=$($SVNLOOK cat -t $TXN $REPOS $f | wc -c)
if [ $filesize -gt $MAX_SIZE ] ; then
echo "File $f is too large (must <= $MAX_SIZE)" >> /dev/stderr
exit 1
fi
# check change lines
changelines=$($SVNLOOK diff -t $TXN $REPOS $f | grep -E '^(\+|-)' | wc -l)
if [ $changelines -gt $MAX_CHANGE_LINES ] ; then
echo "File $f changes too much ($changelines lines, must <= $MAX_CHANGE_LINES)" >> /dev/stderr
exit 1
fi
done
exit 0
pre-commit 返回非0,则commit失败。
错误信息为stderr的信息。
发现svnlook 还是很强大的,有空得好好研究研究,还有什么奇妙功能可以深入挖掘之。
前两天研究TP(一个基于vxWorks的IPS),搞得郁闷了,却激起了对实时系统的兴趣,想研究把RTLinux。 什么是RTLinux,参见Waht is RTLinux (http://blog.jibin.net/read.php?7) 先把安装过程写下来的说。RTLinux是以Linux Kernel Patch的方式发布的,他通过巧妙的技术实现了不重写Linux内核而使得Linux支持实时的特性。根据网上的测试数据来看,在多任务的情况,RTLinux的进程切换时间要明显优于通常的Linux。 废话不多说了,讲一下安装过程: 下载rtlinux,去ftp://ftp.rtlinux-gpl.org/pub/rtlinux/下载。下载一个最近的版本,这里是 rtlinux-3.2-rc1.tar.bz2。支持内核 2.4.19 to 2.4.29。接着下载Linux Kernel,去kernel.org 找个速度快点的镜像推荐一个国内的镜像(http://www.cn.kernel.org/pub/linux/kernel/v2.4/)。 我用的是Slackware Linux 10.2,将Kernel源码和rtlinux的源码拷贝到/usr/src下解压。
进入rtlinux的源码目录,创建一个指向kernel source的连接
应用RTLinux的Patch
开始编译内核 (这里不详细说了)
安装新内核
tar xjvf rtlinux-3.2-rc1.tar.bz2 tar xjvf linux-kernel-2.4.28.tar.bz2
进入rtlinux的源码目录,创建一个指向kernel source的连接
cd rtlinux-3.2-rc1 ln -s /usr/src/linux-2.4.28/ ./linux
应用RTLinux的Patch
cd ./linux patch –p1 < /usr/src/linux-2.4.28/patches/kernel_patch-2.4.28-rtl3.2-rc1
开始编译内核 (这里不详细说了)
make menuconfig // 选择自己需要的驱动、模块等 make dep make bzImages make modules make modules_install
安装新内核
What is RTLinux?
Rtlinux is an operating system that allows real-time control of machinery and data from a Linux environment. RTLinux is a hard real time operating system with guaranteed response times (up to hardware limits). Many "real-time" operating systems offer " typical" response times instead. RTLinux was originally developed at the New Mexico Institute of Technology.
Response times are close to hardware limits. On a modest, reasonably configured, x86 PC a RTLinux interrupt handler will run under 10 microseconds from the moment the interrupt was asserted and a RTLinux periodic task will run worst case within 30 microseconds of its scheduled time. On better hardware, these times shrink. Of course, if you insist on bad hardware, you can make things run worse.
Programs are developed in a standard Linux environment with additional capability of connecting to real-time tasks. For example, it is easy to write a Perl script that displays data in Xwindows, responds to commands delivered over a network, and collects data from a real-time task.
RTlinux is currently used for telecommunications, robotics, video editing, and data acquisition and other applications in the field and in R&D labs.
License is an open-source license with no royalties or fees. RTLinux is an open-source kernel, released under the LGPL. The source is freely distributed.
Rtlinux is an operating system that allows real-time control of machinery and data from a Linux environment. RTLinux is a hard real time operating system with guaranteed response times (up to hardware limits). Many "real-time" operating systems offer " typical" response times instead. RTLinux was originally developed at the New Mexico Institute of Technology.
Response times are close to hardware limits. On a modest, reasonably configured, x86 PC a RTLinux interrupt handler will run under 10 microseconds from the moment the interrupt was asserted and a RTLinux periodic task will run worst case within 30 microseconds of its scheduled time. On better hardware, these times shrink. Of course, if you insist on bad hardware, you can make things run worse.
Programs are developed in a standard Linux environment with additional capability of connecting to real-time tasks. For example, it is easy to write a Perl script that displays data in Xwindows, responds to commands delivered over a network, and collects data from a real-time task.
RTlinux is currently used for telecommunications, robotics, video editing, and data acquisition and other applications in the field and in R&D labs.
License is an open-source license with no royalties or fees. RTLinux is an open-source kernel, released under the LGPL. The source is freely distributed.





