[TOC] 一、gdb基本使用 ? GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具; 1. 启动gdb ? 对于C/C++程序,编译的时候需要加上 参数生成调试信息。如: 调 ...
分类:
数据库 时间:
2019-06-10 00:11:27
阅读次数:
377
c语言代码与可执行文件的映射关系 面试题:脚本代码文件是不是可执行程序? 是,也不是!下面是过程!可执行程序->操作系统加载->生成进程脚本文件->脚本解释程序->生成进程->操作系统读取脚本文件解释执行 可执行程序与内存的映射关系堆栈段是程序运行后才正式存在的,是程序运行的基础。 #静态存储区.b ...
分类:
编程语言 时间:
2019-06-09 22:17:04
阅读次数:
120
ES6 规范中添加了对尾调用优化的支持,虽然目前来看支持情况还不是很好,但了解其原理还是很有必要的,有助于我们编写高效的代码,一旦哪天引擎支持该优化了,将会收获性能上的提升。 讨论尾调用前,先看函数正常调用时其形成的堆栈(stack frame)情况。 函数的调用及调用堆栈 先看一个概念:调用堆栈( ...
分类:
其他好文 时间:
2019-06-07 11:24:18
阅读次数:
89
1、程序的真正入口 (1) main 或WinMain 是“语法规定的用户入口”,而不是“应用程序入口”。应用程序入口通常是启动函数。 通过VC6堆栈调用查看 (2) mainCRTStartup 和 wmainCRTStartup 是控制台环境下多字节编码和Unicode 编码的启动函数. 而Wi ...
分类:
其他好文 时间:
2019-06-05 18:13:33
阅读次数:
92
SIGBUS 在 x86 Linux 上并不多见,但一旦出现,其调用堆栈常常让人摸不着头脑,加之信号问题各平台系统间差异较大,更让人难以理清,这里稍微总结一下 x86 Linux 上大概有哪些情形会触发 BUS ERROR. 文件映射访问异常 这是 SIGBUS 在用户态最为常见的场景,也最容易触发 ...
分类:
系统相关 时间:
2019-06-05 09:41:18
阅读次数:
143
我们都知道在Java语言中,new一个对象存储在堆里,我们通过堆栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在堆栈中,因此更加高效 ...
分类:
其他好文 时间:
2019-06-04 00:01:17
阅读次数:
134
守护进程 进程:一个正在运行的程序。 主进程创建守护进程: 1.守护进程会在主进程代码执行结束后就终止, 2.守护进程内无法再开启子进程,否则抛出异常。 注意:进程之间是互相独立的,主进程代码运行结束,守护进程随即终止。 例子:from multiprocessing import Processi ...
分类:
系统相关 时间:
2019-06-03 22:05:09
阅读次数:
164
LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为队列或者堆栈使用。 <! more LinkedList介绍 LinkedList继承关系 LinkedList简介 1. 是一个继承于 的双向链表。它也可以被当做堆栈、队列或双端队列进行使用。 2. 实现 接口, ...
分类:
其他好文 时间:
2019-06-02 20:39:12
阅读次数:
135
上图是进程的虚拟地址空间示意图。 堆栈段: 1. 为函数内部的局部变量提供存储空间。 2. 进行函数调用时,存储“过程活动记录”。 3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈。 数据段(静态存储区): 包括BSS段的数据段,BSS段存储未初始化的全局变量、静态变量 ...
分类:
系统相关 时间:
2019-06-02 15:54:59
阅读次数:
162
Lombok简介 和其他语言相比,Java经常因为不必要的冗长被批评。Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁。较少的模板意味着更简洁的代码,更易于阅读和维护。在本文中,我将涉及我经常使用的Lombok功能,并想你展示如何使用他们生产更清晰、 ...
分类:
其他好文 时间:
2019-06-01 10:00:49
阅读次数:
116