callstack相关内容

递归承诺会导致堆栈溢出吗?

例如,我发现了一些基于Promise的api库,我需要在一定时间间隔(无限次)(例如通常的后端循环)中使用此库发出api请求。该api请求-实际上是承诺链。 因此,如果我编写如下函数: function r(){ return api .call(api.anotherCall) .then(api.anotherCall) .then(api.anotherCall) ..
发布时间:2020-09-29 00:49:04 前端开发

确定特定功能是否在Python堆栈中的有效方法

对于调试,通常有用的是判断某个函数在调用堆栈中是否较高。例如,我们通常只想在某个函数调用我们时运行调试代码。 一种解决方案是检查所有更高级别的堆栈条目,但这是在堆栈深处并重复调用的函数中,这会导致过多的开销。问题是找到一种方法,使我们能够以合理有效的方式确定特定函数是否在调用堆栈中更高。 相似 从框架对象获取对执行堆栈上功能对象的引用?-这个问题着重于获取功能对象,而不是确定我们 ..
发布时间:2020-09-29 00:46:59 Python

您如何找到调用者函数?

以与“如何找到调用当前方法的方法?” 是使用c#可以吗? void main() { Hello(); } void Hello() { // //您如何确定调用方是函数“ main”? } 解决方案 Console.WriteLine(new StackFrame(1).GetMethod()。Name); 但是,这并不可靠,尤 ..
发布时间:2020-09-29 00:46:51 C#/.NET

在python中获取函数调用者的信息

我想获取有关python中特定函数的调用者的信息。例如: class SomeClass(): def __init __(self,x): self。 x = x def呼叫者(自己): return special_func(self.x) def special_func(x): print“我的呼叫者是'呼叫者“在“ SomeClass”类中起作用。” ..
发布时间:2020-09-29 00:46:47 Python

为什么堆栈大小有限制?

可能重复: 什么是堆栈和堆 我安装的Ubuntu的默认堆栈大小限制为8 MB。但是我很好奇为什么我们需要限制用户程序的堆栈大小。同一程序可以通过malloc / mmap等使用其4 GB(对于32位程序)的所有可寻址空间。那么为什么我们需要堆栈大小限制?为什么堆栈不能增长,直到堆栈几乎碰到堆? 解决方案 实际上,堆栈确实 越来越多。通常情况下,它不需要很大,因此不需要很大。 ..
发布时间:2020-09-29 00:46:45 其他开发

Node.js中的默认堆栈大小是多少?

我知道如何设置堆栈大小,这要归功于: 如何增加Node.js中的最大调用堆栈大小 但是,默认大小是多少? (即如何获得 phpinfo()的PHP等效项) 解决方案 简单的答案是,默认堆栈大小为492 KB(32位)和984 KB(64位)。 如soyuka所评论,请尝试此操作: $节点--v8选项| grep -B0 -A1 stack_size ..
发布时间:2020-09-29 00:46:39 其他开发

是否可以在VB6中以编程方式检索调用堆栈?

当一个函数发生错误时,我想知道导致该错误的事件的顺序,尤其是当从十几个不同的地方调用该函数时。有什么方法可以在VB6中检索调用堆栈,还是必须用困难的方式(例如,在每个函数和错误处理程序中记录日志条目等)? 解决方案 我很确定您必须采用困难的方法。在我的上一个工作中,我们对带有DCOM组件的VB6有一个非常优雅的错误处理过程。但是,必须在每种方法中添加很多冗余代码,以至于我们拥有了自己开发的 ..
发布时间:2020-09-29 00:46:38 其他开发

我如何打印称为函数的函数

在调试Python脚本时,我真的很想知道整个程序的整个调用堆栈。理想的情况是,如果有一个用于python的命令行标志,它将导致Python在调用所有函数名时打印它们(我检查了 man Python2.7 ,但是 由于此脚本中的函数数量众多,我宁愿不要在每个函数的开头添加打印语句函数和/或类(如果可能)。 一种中间解决方案是使用PyDev的调试器,放置几个断点并检查程序中给定点的调用堆栈 ..
发布时间:2020-09-29 00:46:36 Python

简要说明堆栈框架的概念

在编程语言设计中,我似乎有了调用堆栈的想法。但是我找不到(也许我只是不够努力)关于什么是堆栈框架的解释。 所以我会想让某人用几句话向我解释一下。 解决方案 堆栈框架是要推送的数据框架到堆栈上。在调用堆栈的情况下,堆栈帧将表示函数调用及其参数数据。 如果我没记错的话,函数的返回地址首先被压入堆栈,然后是局部变量的参数和空间。尽管这可能取决于体系结构,但它们共同构成了“框架”。处理 ..
发布时间:2020-09-29 00:46:33 其他开发

调试VBA,查找问题和故障排除方法

调试VBA代码有哪些方法? 具体是: 单步执行代码 断点和Stop命令 The Debug 命令 本地&监视窗口 调用堆栈 解决方案 调试VBA代码 此页面介绍了调试VBA代码的方法。 简介 调试程序是软件开发中最重要的步骤之一。了解VBA的调试工具可以使调试更轻松,更高效。本页介绍了VBA的几种内置调试工具,可在测试和调试应用程序时使用。 单步 ..
发布时间:2020-09-23 19:59:40 其他开发

8086微处理器的堆栈溢出

8086微处理器在堆栈已满并且什至在我将某些东西推入其中时会如何处理? 解决方案 在8086上,PUSH指令或隐式堆栈推入将SP寄存器减2,并在SS:SP处存储适当的数量(即16 * SS + SP).如果SP寄存器为$ 0000,则数据将进入SS:$ FFFE.如果SP寄存器为$ 0001,则数据的MSB将到达SS:$ 0000,而LSB将到达SS:$ FFFF.处理器不会对堆栈回绕有任 ..

Windows线程堆栈保护页机制在未初始化的局部变量的情况下如何工作?

在x86-32/x86-64体系结构的Windows操作系统上,线程堆栈虚拟内存由“保留部分",“提交部分",“保护页面"和“保留页面"组成. 问题: 想象一下,我有1页的提交内存和1MB的线程堆栈保留内存. 我在堆栈上分配了一些内存,该内存等于K页,而没有初始化.例如,K等于10.似乎在堆栈开始时,堆栈上的内存将由用户空间代码分配,如下所示: sub esp, K*4096 ..
发布时间:2020-09-12 23:38:35 C/C++开发

英特尔64位,奇怪的RSP行为

我遇到了在Windows中使用IDA调试64位二进制文​​件的问题.通常,在将 push 的RSP值减去8之后,但偶尔从IDA中我看到RSP的值仅减去2,然后在下一次Push时减去8. 涉及的代码是 push rax push rbx push rsi push rdi 我对x64环境还很陌生,因此任何人都可以解释这种现象吗? 解决方案 您可能会因为十六进制而感到困惑.计数 ..
发布时间:2020-09-12 23:13:05 其他开发

无需程序即可在ASM中实施递归

我正在尝试以一种没有过程的,类似于ASM的简化语言来实现函数和递归.只有简单的jumpz,jump,push,pop,add,mul类型命令. 以下是命令: (所有变量和文字都是整数) set(设置一个已经存在的变量的值或声明并初始化一个新变量),例如(设置x 3) push(将值推入堆栈.可以是变量或整数),例如(按3)或(按x) pop(将堆栈弹出到变量中),例如(弹出x) ..
发布时间:2020-09-12 22:48:23 其他开发

如何在x86实模式下正确设置SS,BP和SP?

我想知道如何正确执行此操作,因为我的操作方式无效. 用7C00h设置BP寄存器,然后用BP设置SP寄存器,然后压入一些ASCII码,然后从存储器中获取数据并用INT 10h打印时,它就可以正常工作. mov ax, 7C00h mov bp, ax mov sp, bp push 'A' mov ah, 0Eh mov al, [7BFEh] int 10h 实际输出是 ..
发布时间:2020-09-12 22:45:24 其他开发

推入和弹出在组装中如何工作

我对pop在组装中的实际用途感到困惑. pop是将值PUSH ed最后移到堆栈上(这意味着如果我们MOV最后一个元素PUSH ed之后​​的值不适用)还是仅弹出最后一个在堆栈上的值?堆栈(因此,同时应用于MOV和PUSH),还是会弹出堆栈指针所指向的值?考虑以下代码: push $4 mov $5, -4(%esp) add $4, %esp (esp pointing to an unkn ..
发布时间:2020-09-12 22:17:53 其他开发