stack相关内容

Android AppWidget 配置 - 在新任务中开始

我已经搜索、搜索和搜索了这个! 所以我有一个应用小部件,它有一个配置活动,我可以在按下应用上的按钮时打开它.场景是: 已打开应用程序. 使用主页按钮关闭应用程序. 选择添加我的小部件 我已经配置了小部件. 放在我的主屏幕上 然后使用小部件上的按钮再次打开配置活动. 按返回取消新配置将使我回到应用程序. 当按下时我只想回家. 基本上我要问的 ..
发布时间:2022-01-22 12:59:34 移动开发

使用 Ruby/Erlang 迭代生成排列,无需递归或堆栈

我想生成列表的所有排列,但我想在将某些排列添加到堆栈或存储在任何地方之前过滤掉它们. 我将根据一些自定义的临时规则过滤掉排列. 换句话说,我想生成一个大列表(50-300 个元素)的排列列表,但我想在此过程中丢弃大部分生成的排列(我知道完整的数字的排列是 N!). 我已经尝试使用 Ruby 及其 Array.permutation.to_a,但它看起来在执行过程中维护了一个完整的 ..
发布时间:2022-01-22 12:59:16 其他开发

对于缓冲区溢出,使用 pthread 时的堆栈地址是什么?

我正在学习计算机安全课程,并且有一个额外的学分分配将可执行代码插入缓冲区溢出.我有我正在尝试操作的目标程序的 c 源代码,并且我已经到了可以成功覆盖当前函数堆栈帧的 eip 的地步.但是,我总是遇到分段错误,因为我提供的地址总是错误的.问题是当前函数位于 pthread 内部,因此,堆栈的地址似乎总是在程序的不同运行之间发生变化.是否有任何方法可以在 pthread 中查找堆栈地址(或用于估计 p ..
发布时间:2022-01-22 12:59:09 其他开发

malloc 什么时候在裸机环境中返回 NULL?

有一个c内存模型如下: +--------+ RAM 最后地址|堆栈 |||||v |+--------+内存 ||||+--------+|^ |||||堆 |+--------+|紫 |+--------+|RW |+========+ RAM 的首地址 堆栈和堆空间以相反的方向增加.它们将在中间相互重叠.所以我的问题是: 在裸机环境中,malloc 什么时候返回 NULL? 在 ..
发布时间:2022-01-22 12:58:37 其他开发

如何在字符串中找到匹配的大括号对?

假设我有一个字符串 "(paid for) + (8 working hours) + (company rules)" .现在我想检查这个完整的字符串是否用括号括起来.基本上我想检查字符串是否是这样的:“((付费)+(8个工作小时)+(公司规则))".如果它已经用括号括起来,那么我将保持原样,否则我会将括号应用于完整的字符串,以便输出为:“((支付)+(8个工作小时)+(公司规则))" .通过计 ..
发布时间:2022-01-22 12:58:28 C#/.NET

从 Android 应用程序堆栈中手动删除活动

我一直在开发 Android Native App,我想做的是: 活动 - A ->B ->C 然后 A->B ->C ->C . 如果 C Activity 再次指向 C,那么我想手动从堆栈中删除 C、B.在我的背上,它应该只移动到 A . 我试过finish(),但问题是: 活动 - A ->B ->C 然后 A->B ->C ->C 结束 A ->B ->C 所需状态 A->C ..
发布时间:2022-01-22 12:58:15 Java开发

在研究缓冲区溢出时,我应该使用哪些版本的 GCC 或标志?

最近,作为计算机工程专业的本科生,我一直在研究缓冲区溢出问题.只是出于兴趣,我开始研究和研究缓冲区溢出,但在尝试在我自己的计算机上使用 GCC 4.9.1(在 Debian Jessie 中)编译的 C 程序中实现它们时遇到了困难. 我听说在较新的编译器中有各种堆栈溢出保护,所以我认为我的问题是我的编译器版本太新了.要么,要么我没有使用正确的标志进行编译(无). 那么有没有好的 GCC ..
发布时间:2022-01-22 12:57:51 服务器开发

单调的堆栈和队列.定义和例子

究竟什么是单​​调堆栈?(例如,它与单调队列有何不同?) 例如考虑以下整数数组:[0, 2, 1, 3, 4].如果我从左到右处理这个数组并将其插入到单调递减的堆栈中,我应该在堆栈中看到什么,为什么? 这里Python 中单调递减堆栈的示例,显然用于解决 奇偶跳转的许多解决方案问题: def make(A):结果 = [无] * Nstack = [] # 不变式:栈在递减对于 A ..
发布时间:2022-01-22 12:57:32 其他开发

每个进程是否存在内核堆栈?

每个用户空间进程是否存在内核堆栈和用户空间堆栈?如果两个堆栈都存在,那么每个用户空间进程应该有 2 个堆栈指针,对吧? 解决方案 在 Linux 中,每个任务(用户空间或内核线程)都有一个 8kb 或 4kb 的内核堆栈,具体取决于内核配置.确实有单独的堆栈指针,但是,在任何给定时间,CPU 中都只有一个;如果用户空间代码正在运行,则用于异常或中断的内核堆栈指针由任务状态段指定,如果内核代 ..
发布时间:2022-01-22 12:57:18 服务器开发

是否有不同步的 Java Stack 的替代品?

我有一个使用 Stack 数据结构的大型代码库(由我编写).这是为了方便起见,我有时将其用作堆栈或向量/列表. 然而,经过性能评估,我们决定不为同步安全支付额外费用.我现在需要用非同步的结构替换这个结构(代码中多次提到). 我很高兴地发现 Apache 集合包含一个 ArrayStack 这正是我想要的(与 Java 堆栈相同但非同步).但是,这没有像现代 Java 5 代码那样的泛型 ..
发布时间:2022-01-22 12:57:08 Java开发

无法获取线程转储?任何想法为什么我的应用程序阻塞?

我有一个基本的 java 服务器应用程序,它有 100 个工作线程,它们在 url 上执行简单的 HEAD 请求.我为此使用 HttpClient 4.x. 运行几分钟后,我的程序就冻结了几分钟,我不知道为什么.查看视觉 vm 监视器报告的屏幕截图.你可以看到它是平的.在此期间,我无法获得良好的线程转储,并且视觉虚拟机只是冻结,直到它被解除阻塞.有没有人知道我可以做些什么来尝试开始调试这个家 ..
发布时间:2022-01-22 12:57:02 Java开发

计算方法调用堆栈大小以检查 StackOverflowException

今天早上我回答了一个与 StackoverflowException 相关的问题.该人已询问何时发生 Stackoverflow 异常 查看此链接最简单的方法在 C#、C++ 和 Java 中导致堆栈溢出 所以我的问题是,是否有任何方法可以在我们的程序中动态计算方法调用堆栈的大小,然后在调用方法之前应用检查来检查方法调用堆栈是否有空间来容纳它以防止堆栈溢出异常. 由于我是 jav ..
发布时间:2022-01-22 12:56:37 Java开发

栈里面有什么?

如果我运行一个程序,就像 #include int main(int argc, char *argv[], char *env[]) {printf("我的引用在 %p, %p, %p\n", &argc, &argv, &env);} 我们可以看到这些区域实际上在堆栈中.但还有什么?如果我们循环遍历 Linux 3.5.3 中的所有值(例如,直到 segfault),我们 ..
发布时间:2022-01-22 12:56:31 其他开发

在 C# 中迭代​​堆栈的最快方法

我觉得使用 GetEnumerator() 和强制转换 IEnumerator.Current 很昂贵.有更好的建议吗? 如果它提供类似的功能和更好的性能,我愿意使用不同的数据结构. 经过思考: 通用堆栈会是一个更好的主意,这样就不需要强制转换了吗? 解决方案 你做过基准测试,还是只是直觉? 如果您认为大部分处理时间都花在循环堆栈上,您应该对其进行基准测试并确保情况确实 ..
发布时间:2022-01-22 12:56:22 C#/.NET

C++跳转到其他方法执行

在我的 C++ JNI-Agent 项目中,我正在实现一个函数,该函数将被赋予可变数量的参数并将执行传递给另一个函数: //原始函数的地址公共静态无效* originalfunc;void* 拦截器(JNIEnv *env, jclass clazz, ...){//函数地址加 4 跳过“push ebp/mov ebp esp"asm volatile("jmp *%0;"::"r" (ori ..
发布时间:2022-01-22 12:56:07 C/C++开发

堆栈上的局部变量

为了理解堆栈帧的概念,我为自己编写了一个小程序.首先,我将向您展示代码,一个关于它的小草图,然后我将提出我的问题: 所以,程序: int check_pw(char *password){整数有效 = 0;字符缓冲区[10];strcpy(缓冲区,密码);如果(strcmp(缓冲区,“a")== 0){有效 = 1;}返回有效;}int main(int argc, char *argv[ ..
发布时间:2022-01-22 12:55:46 其他开发

溢出的缓冲区数据不会连续存储

我有下面的代码来模拟缓冲区溢出. 编辑:我错过了下面代码中的一个重要步骤.随着讨论的进行,变量 c 正在被修改. void 函数 (int fd, int e){诠释 i = 0;诠释n;字符 c;字符[44];..c = getchar(fd);.//对c的一些检查s[i++] = c;.//更多的局部变量和对它们的一些操作.} 我试图通过发送更多 > 4 字节的输入来溢出缓冲区,以查 ..
发布时间:2022-01-22 12:55:38 服务器开发