本文所使用的golang为1.14,gdb为8.1。 一直以来对于函数调用都仅限于函数调用栈这个概念上,但对于其中的详细结构却了解不多。所以用gdb调试一个简单的例子,一探究竟。 函数调用栈的结构(以下简称栈) 栈包含以下作用: 存储函数返回地址。 保存调用者的rbp。 保存局部变量。 为被调用函数 ...
分类:
数据库 时间:
2020-05-23 09:37:23
阅读次数:
60
参数为同步回调函数就直接执行同步回调函数 参数为异步回调函数就放入消息队列,等调用栈空了先执行微任务队列,再执行消息队列 promise async await的异步回调函数放入微任务队列,。。。 https://www.bilibili.com/video/BV1kf4y1U7Ln?from=se ...
分类:
Web程序 时间:
2020-05-07 22:34:08
阅读次数:
72
涉及到以下汇编指令: pushl: 入栈 ebp指向栈底 esp指向栈顶 入栈时只需要将esp下移, 将入栈的值放入esp指向的地址,如下图所示: popl: 出栈 先将栈顶的数据保存,再将esp上移 call:顾名思义,调用一个函数 调用一个函数需要将当前执行到的指令位置(eip寄存器的值)保存, ...
分类:
其他好文 时间:
2020-05-07 00:26:08
阅读次数:
72
47个用例过了42 ,用了一个图色彩的方法,标记图书,然后调过,调用栈过长,肯能要优化一下 附录GDB 调试的源码 #include <vector> #include<iostream> using namespace std; class Solution { bool Inmap(int i ...
分类:
其他好文 时间:
2020-05-05 17:43:17
阅读次数:
72
题目: 解答: 方法一:回溯 想法: 一个反序中序遍历的方法是通过递归实现。通过调用栈回到之前的节点,我们可以轻松地反序遍历所有节点。 算法: 在递归方法中,我们维护一些递归调用过程中可以访问和修改的全局变量。首先我们判断当前访问的节点是否存在,如果存在就递归右子树,递归回来的时候更新总和和当前点的 ...
分类:
其他好文 时间:
2020-05-03 14:49:24
阅读次数:
53
一、背景 Linux系统出现性能瓶颈时,往往因个别函数长时间占用CPU造成,解决问题的第一步就是定位到引起问题的函数,perf就是这样的工具,它是Linux内核源码提供的工具。 二、核心概念 1. 数据采集 perf通过采样的方式,记录CPU正在执行的函数名及函数的调用栈,通常采样频率是每秒99次, ...
分类:
系统相关 时间:
2020-05-02 17:23:05
阅读次数:
559
ThreadLocal可以很方便的在一个线程运行周期内传递各种数据,而不用在调用栈的每个方法上添加新的参数 它的运行机制也比较简单,每个线程实例内部都会有一个 ThreadLocal.ThreadLocalMap threadLocals(类型具体定义在ThreadLocal.class 内部)类型 ...
分类:
编程语言 时间:
2020-05-02 14:43:08
阅读次数:
59
先出现的是超过最大调用栈问题: npm ERR! Maximum call stack size exceeded 百度之后说给npm降级或者升级 降级 : npm install -g npm@5.4.0 升级 : npm install -g npm 升级到最新版 结果降级之后再尝试的时候就直接 ...
分类:
其他好文 时间:
2020-04-29 20:23:04
阅读次数:
90
转自:https://durant35.github.io/2017/10/29/VM_Stacks/ Linux 中有几种栈?各种栈的内存位置? 关于栈 函数调用栈的典型内存布局 栈帧 (Stack Frame) 的边界由栈帧基地址指针 EBP 和 栈指针 ESP 界定,EBP指向当前栈帧底部 ( ...
分类:
编程语言 时间:
2020-04-27 19:49:37
阅读次数:
86
javascript 是一个单线程的脚本 js 在事件循环中分为同步任务和异步任务 同步任务:直接执行 异步任务:同步任务之后执行 js 在事件循环流程: 1>js中含有一个主线程,以及一个调用栈(也叫执行栈) 2>所有的同步任务都在调用栈中,调用栈都在主线程上执行 3>主线程之外还有要一个“任务队 ...
分类:
Web程序 时间:
2020-04-27 09:45:15
阅读次数:
80