先確保執行這個. 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