先确保执行这个. win7 以上才支持 WER windows error report 功能 .
windows 弹出提示框, 然后进程管理器,右键手工导出也行.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpFolder"="c:\\"
"DumpCount"=dword:00000030
"DumpType"=dword:00000002
"CustomDumpFlags"=dword:00000000
c++ debug版本 + pdb文件
另外需要注意不是所有情况都生成core.
windows 改了注册表不生成core的原因:
· Debugging dump files of optimized code can be confusing. For example, compiler inlining of functions can result in unexpected call stacks and other optimizations might change the lifetime of variables.
· Dump files from 64-bit machines must be debugged on an instance of Visual Studio that is running on a 64-bit computer.
· In versions of Visual Studio before VS 2013, dumps of 32-bit apps that were run on 64-bit machines that were collected by some tools (such as Task Manager and 64-bit WinDbg) could not be opened in Visual Studio. This limitation has been removed in VS 2013.
· Visual Studio can debug dump files of native apps from ARM devices. Visual Studio can also debug apps dump files of managed apps from ARM devices, but only in the native debugger.
· To debug kernel-mode dump files in Visual Studio 2013, download the Windows 8.1 Version of Debugging Tools for Windows. See Kernel Debugging in Visual Studio.
· Visual Studio can't debug dump files saved in the older dump format known as a full user-mode dump. Note that a full user-mode dump is not the same a dump with heap.
· To debug with the SOS.dll (SOS Debugging Extension) in Visual Studio, you must install the Debugging Tools for Windows that is part of the Windows Driver Kit (WDK). See Windows 8.1 Preview: Download kits, bits, and tools.
参考:
Collecting User-Mode Dumps --注册表
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181(v=vs.85).aspx
Crash Dump Analysis --- c++ 自己生成dump
http://msdn.microsoft.com/en-us/library/windows/desktop/ee416349(v=vs.85).aspx
Use Dump Files to Debug App Crashes and Hangs in Visual Studio
http://msdn.microsoft.com/en-us/library/d5zhxt22.aspx#bkmk_requirements_and_limitations
Attach to Running Processes with the Visual Studio Debugger
http://msdn.microsoft.com/en-us/library/3s68z0b3.aspx
Just-In-Time Debugging in Visual Studio ------- 还没看
http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx
The Discipline and Method Architecture for Reusable Libraries (2000)
Citations
1489 | The C++ Programming Language - Stroustrup - 1991 |
1437 | Object-Oriented Software Construction - Meyer - 1997 |
861 | Design Patterns - Gamma, Helm, et al. - 1995 |
303 | Purify: Fast detection of memory leaks and access errors - Hastings, Joyce - 1991 |
232 | Rational design process: how and why to fake it - Parnas, Clements - 1986 |
118 | The Art of Computer Programming, Volume 1 - Knuth - 1998 |
89 | Scalable software libraries - Batory, Singhal, et al. - 1993 |
67 | The Library Scaling Problem and the Limits of Concrete Component Reuse - Biggerstaff - 1994 |
57 | Algorithm-oriented generic libraries - Musser, Stepanov - 1994 |
47 | Vmalloc: A general and efficient memory allocator - Vo - 1996 |
37 | Algorithms, 2nd edition - Sedgewick - 1988 |
30 | An Empirical Study of Delta Algorithms - Hunt, Vo, et al. - 1996 |
27 | Empirical measurements of six allocation-intensive C programs - Zorn, Grunwald - 1992 |
19 | Porting Unix to Windows NT - Korn |
19 | Xept: A software instrumentation method for exception handling - Vo, Wang, et al. - 1997
|
18 | Worst case fragmentation of first fit and best fit storage allocation strategies - Robson - 1977 |
17 | libg++, the GNU C++ library - Lea - 1988 |
13 | On the external storage fragmentation produced by first-fit and best-fit allocation strategies - Shore - 1975 |
11 | C Interfaces and Implementation - Hanson - 1997 |
10 | National Standard for Information Systems { Programming Language C. Technical Report X3J11/89{159, ANSI Accredited Standards Committee, X3 Information Processing Systems - American - 1989 |
9 | Ksh - an extensible high level language - Korn - 1994 |
7 | Associative arrays - Koenig - 1988 |
5 | CDT: A Container Data Type Library - Vo - 1997 |
5 | Making a vector Fit for a Standard - Stroustrup - 1994 |
4 | Vdelta: Differencing and Compression - Korn, Vo - 1995 |
4 | Kiem-Phong Vo. Principles for Writing Reusable Library - Fowler, Korn - 1995 |
3 | Practical Reusable Unix Software - Krisnamurthy - 1995 |
2 | Negotiated Interfaces for Software Reuse - Clements, Parnas, et al. - 1992 |
1 | Concrete software libraries - Vo - 1998 |
1 | Sfio: A Buffered I/O Library. Software---Practice and Experience - Fowler, Korn, et al. - 199
|
#include <sys/stat.h>
long file_length(char *f)
{
struct stat st;
stat(f, &st);
return st.st_size;
}
If you have the file stream (FILE * f):
fseek(f, 0, SEEK_END); // seek to end of file
size = ftell(f); // get current file pointer
fseek(f, 0, SEEK_SET); // seek back to beginning of file
// proceed with allocating memory and reading the file
Or,
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
fd = fileno(f);
struct stat buf;
fstat(fd, &buf);
int size = buf.st_size;
Or, use stat, if you know the filename:
#include <sys/stat.h>
struct stat st;
stat(filename, &st);
size = st.st_size;
relocation error: multiget: symbol _Z23wxHandleFatalExceptionsb, version WXU_2.8 not defined in file libwx_baseu-2.8.so.0
下载地址:
http://www.codeblocks.org/downloads/26
http://sourceforge.net/projects/codeblocks/files/Binaries/13.12-RC1/Linux%20(64bit)/
codeblocks-13.12-1.el5.x86_64.tar.bz2
安装的关键
Note: On RedHat/CentOS 5 and older revisions of 6 (up to 6.2 as far as I know) you need to add repoforge (former rpmforge) to your repolist, to be able to install the needed wxGTK-package. Seehttp://repoforge.org/use for an instruction.
更新yum的源 很重要
http://repoforge.org/use/ 下载对应的rpm
cat /etc/redhat-release
uname –a
wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh package-filename
# yum install gcc
# yum install gcc-c++
如果之前失败过 yum erase wxGTK
# yum install wxGTK
然后
]# ls
codeblocks-12.11-1.el6.i686.rpm
codeblocks-contrib-12.11-1.el6.i686.rpm
codeblocks-contrib-devel-12.11-1.el6.i686.rpm
codeblocks-devel-12.11-1.el6.i686.rpm
# rpm -ivh codeblocks*
1. 下载repo文件
下载地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo
2. 备份并替换系统的repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost ~]# mv /root/CentOS6-Base-163.repo CentOS-Base.repo
3. 执行yum源更新
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum update
yum install gcc gcc-g++ autoconfig automake
参考:
http://blog.csdn.net/dupei/article/details/6428346
http://www.cnblogs.com/magialmoon/archive/2013/05/05/3061108.html
sqlplus 外面执行正常.
tomcat调用老有问题.多调用几次久正常.
可能是包中的全局变量引起的.
If so, that's because your package is stateful:
The values of the variables, constants, and cursors that a package declares (in either its specification or body) comprise its package state. If a PL/SQL package declares at least one variable, constant, or cursor, then the package is stateful; otherwise, it is stateless.
When you recompile the state is lost:
If the body of an instantiated, stateful package is recompiled (either explicitly, with the "ALTER PACKAGE Statement", or implicitly), the next invocation of a subprogram in the package causes Oracle Database to discard the existing package state and raise the exception ORA-04068.
After PL/SQL raises the exception, a reference to the package causes Oracle Database to re-instantiate the package, which re-initializes it...
You can't avoid this if your package has state. I think it's fairly rare to really need a package to be stateful though, so you should revisit anything you have declared in the package, but outside a function or procedure, to see if it's really needed at that level. Since you're on 10g though, that includes constants, not just variables and cursors.
But the last paragraph from the quoted documentation means that the next time you reference the package in the same session, you won't get the error and it will work as normal (until you recompile again).
existing state of packages has been discarded
means, that your Package had some sort of state.
This is caused by a global variable (or constant) stored in your Package Body.
Since the package has already been used in your session, Oracle assumes that this state is relevant for you. Some of these variables might have different values now, and when you recompile the Body, the values are reset.
This exception is thrown, so that your clients know that they can't rely on those variables any more.
You could try to remove all global variables and constants from the Package Body, or close your session and reconnect before calling the package again.
参考:
http://stackoverflow.com/questions/2502722/pl-sql-package-invalidated
http://stackoverflow.com/questions/19376440/ora-06508-pl-sql-could-not-find-program-unit-being-called
监听器配置少了.
lsnrctl
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = XE )
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(SID_NAME =XE )
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
1.安装 vnc-server
找包
http://www.rpmfind.net/linux/rpm2html/search.php?query=libtermcap&submit=Search+...&system=centos&arch=
如果window
vncserver :1
输入密码
vnc登录后
xhost +
解决display问题.
vncserver -kill :1
vnc 如果进入以后3个 提示选择 allow clipboard .
修改/root/.vnc/xstartup文件,把最后一行 twm& 修改成"startkde &" 或者"gnome-session &"
不然的话连接linux时只出现了一个终端编辑器窗口。
exec gnome-session &
oracle 安装
http://blog.itpub.net/7719012/viewspace-1139996
http://lowendtalk.com/discussion/5396/how-to-install-vnc-on-centos
二:使用Xmanager实现xhost挂接图形
http://hi.baidu.com/hanyanlovejoy/item/564ed582accef0efe496e017
删除
:g/.*ABC/m
:g/kernel32/d
:[range]g[lobal]/{pattern}/[cmd] :help :g
vim 查找一个文章段落, 开头字符 结尾字符
/.*#tag1\(.\+\n\+\)\{-}#tag2.*
删除掉 :
g/.*#tag1\(.\+\n\)\{-}#tag2.*/d
这句话\(.\+\n\+\) 采用分组
.\+ .任意字符 + 一个或多个
\n\+ 回车 一个或多个
\+1 或更多
\{-} 0 或更多尽可能少. 任意字符
\n 换行符
为什么 /This\_.*text/ 不可以,因为\_. 是全缓冲区匹配模式的.
概念分组、捕获
http://i.linuxtoy.org/docs/guide/ch26s08.html#id3120909
abc123.456.def
\d{3}表示三个数字,(\d{3}\.)表示三个数字加“.”为一组,{2}表示这一组内容重复两次
参考:
http://vimcdoc.sourceforge.net/doc/pattern.html#search-pattern
^\(.\+\n\)\{-}#.*tag1
http://stackoverflow.com/questions/10076834/multi-line-regex-in-vim-filtering-out-blocks-of-text-in-a-file
Vim 中删除符合条件的行
http://timothyqiu.com/archives/delete-lines-matching-pattern-in-vim/ https://github.com/railsinstaller/railsinstaller-windows/releases
RiskUnit0001.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
obj/Debug/src/RiskUnit0001/RiskUnit0001.o: could not read symbols: Bad value
为什么需要
解决办法编译器已经提示了:recompile with -fPIC
但是我们应该重新编译谁带上这个参数呢?经过我几番折腾,发现如下情况:
1、编译.o文件的时候,没有加参数-fPIC,这问题个在gcc version 3.4.6版本没有发生,可能那个编译器默认都给加上吧。
2、当前程序中有用到某个静态库,那个静态库编译.o文件的时候没有加上-fPIC(静态库其实就是.o文件打包)。补充一点:我发现手写Makefile时即使不加-fPIC也没有这个问题,这一点很郁闷,这个只在用automake工具编译出.a文件时才出现过。
知道原因了,解决办法自然有了,保证你编译.o文件的时候,都加上-fPIC,这样你才能编译出动态库来。
引用
http://hi.baidu.com/duizhe_memory/item/c4ccbb0831a5998d3d42e212
sqlplus "core/core@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.75.1)(Port=1521))(CONNECT_DATA=(SID=itmp)))"
sqlplus core/core@192.168.75.1:1521/itmp
参考一个 :
/***
* ORACLE客户端liunx安装部署说明
*
*/
配置步骤:
1,将本文件夹拷贝到相应的服务器上。
2,配置环境变量如下: 文件夹所在路径(/kfts/tools/oracle)
(永久修改方式)
vi /etc/profile
在文件最后添加:
export LD_LIBRARY_PATH=/kfts/tools/oracle:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/kfts/tools/oracle/
export PATH=/kfts/tools/oracle/:$PATH
export TNS_ADMIN=/kfts/tools/oracle/network/admin
之后运行命令生效:
source /etc/profile
relocation error: multiget: symbol _Z23wxHandleFatalExceptionsb, version WXU_2.8 not defined in file libwx_baseu-2.8.so.0
下载地址:
http://www.codeblocks.org/downloads/26
http://sourceforge.net/projects/codeblocks/files/Binaries/13.12-RC1/Linux%20(64bit)/
codeblocks-13.12-1.el5.x86_64.tar.bz2
安装的关键
Note: On RedHat/CentOS 5 and older revisions of 6 (up to 6.2 as far as I know) you need to add repoforge (former rpmforge) to your repolist, to be able to install the needed wxGTK-package. Seehttp://repoforge.org/use for an instruction.
更新yum的源 很重要
http://repoforge.org/use/ 下载对应的rpm
cat /etc/redhat-release
uname –a
rpm -ivh package-filename
# yum install gcc
# yum install gcc-c++
如果之前失败过 yum erase wxGTK
# yum install wxGTK
然后
]# ls
codeblocks-12.11-1.el6.i686.rpm
codeblocks-contrib-12.11-1.el6.i686.rpm
codeblocks-contrib-devel-12.11-1.el6.i686.rpm
codeblocks-devel-12.11-1.el6.i686.rpm
# rpm -ivh codeblocks*
yum install gcc gcc-g++ autoconfig automake
参考:
http://blog.csdn.net/dupei/article/details/6428346
http://www.cnblogs.com/magialmoon/archive/2013/05/05/3061108.html