coredump时的信息:
(gdb) maintenance info program-spaces
*** Error in `gdb': free(): invalid pointer: 0x0000000003c6bcf0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7d1fd)[0x7fc875c0d1fd]
gdb(fi...
分类:
数据库 时间:
2015-07-14 17:54:45
阅读次数:
262
昨天搞了个文件共享的小程序,遇见了意见蛋疼的事,就是启动之后终端不能关闭,不然程序也会随着关闭.
我的解决方法:
nohup ./httpserver &
nohup这个命令可以把程序放后台运行,顺便通过1>和2>把标准输出和标准错误重定向到文件,这样程序崩溃时才会有记录可查,这两者和程序的日志最好是分开,混在一起没办法判断轻重缓急:
nohup ./server 1> server...
分类:
编程语言 时间:
2015-07-14 11:39:16
阅读次数:
145
这一节,看一下list的iterator对象在内存的布局
1 #include
2
3 void init( std::list& lst )
4 {
5 for ( int i = 0; i < 0x10; i++ )
6 {
7 lst.push_back( i );
8 }
9 }
10
11 int get...
分类:
系统相关 时间:
2015-07-14 00:09:49
阅读次数:
207
在前面看过了一个vectorcoredump的例子,接触了vector的iterator,可以知道vector的iterator只有一个成员_M_current指向vector某一个元素.
先看一个例子:
1 #include
2
3 void init( std::vector& vec )
4 {
5 for ( int i = 0; i < 0x10; i++...
分类:
系统相关 时间:
2015-07-09 21:33:23
阅读次数:
154
之前只知道在同步方法中调用异步(async)方法时,如果用.Result等待调用结果,会造成线程死锁(deadlock)。自己也吃过这个苦头,详见等到花儿也谢了的await。昨天一个偶然的情况,造成在同步方法中调用了async方法,并且没有使用.Result,结果造成整个ASP.NET应用程序的崩溃...
分类:
Web程序 时间:
2015-07-08 14:13:15
阅读次数:
217
看一下bits/stl_map和bits/stl_set可以看到map和set的定义如下:
84 template ,
85 typename _Alloc = std::allocator > >
86 class map
87 {
88 public:
89 typedef _Key ...
分类:
系统相关 时间:
2015-07-04 23:35:04
阅读次数:
290
最近在公司做一个项目的时候,在某次 跟组长讨论的时候。对一个简单的线发生了一些讨论。感觉挺有收获的。现在来总结一下。
在代码开发的时候,底层代码,不要写try-catch。因为写异常处理之后,代码的执行效率会大大的降低。底层的代码,不写异常,但是要经过严格的测试,确保正确。而对于界面层来说,必须接收异常。程序崩溃是非常不友好的。而且也降低了用户对你程序的信任。
对几个小问题...
分类:
其他好文 时间:
2015-06-30 23:44:25
阅读次数:
355
我们知道程序的可用性或者说健壮性非常重要,如果在用户使用的过程中,出现了程序崩溃,或者数据错误都是灾难性的。为了最小化出错的概率,我们想各种办法来减错、容错、纠错。不管怎么减错,比如说提高代码质量、测试驱动开发、大量测试等等,但仍不可避免,还是有各式各样的错误出现。尤其是有UI,需要用户参与的话,错...
分类:
其他好文 时间:
2015-06-29 19:30:07
阅读次数:
172
以对象管理资源资源的种类很多,动态分配的内存、文件描述器、互斥锁、图像界面中画刷、数据库连接、网络socket等。资源一般是有限的,当你不用时,必须释放。不然就会造成资源浪费,更严重的情况下,非法占有所有资源导致程序崩溃。那么我们怎么样才能合理使用资源?换句话说我们应该怎么样才能做到资源的释放?
本节的核心点是:利用析构函数自动调用机制实现资源的合理释放。举个例子:class Investment...
分类:
编程语言 时间:
2015-06-24 10:59:50
阅读次数:
153
【原理】
windows程序当遇到异常,没有try-catch或者try-catch也无法捕获到的异常时,程序就会自动退出,如果这时候没有dump文件的话,我们是没有得到任何程序退出的信息。在windows程序异常退出之前,会预先调用一个在程序中注册的异常处理回调函数(默认是没有设置),只要我们在这个回调函数中调用MiniDumpWriteDump函数就可以产生我们想要的dump文件...
分类:
编程语言 时间:
2015-06-20 09:16:16
阅读次数:
495