vs 出现chkstk.asm问题的解决方式

2023-05-16

程序编译成功无报错,执行debug时,突然系统跳chkstk.asm.。在这里插入图片描述
报了堆栈错误。

定位问题

在这里插入图片描述
在这里插入图片描述
我们到堆栈最后执行的地方,发现是一个线程创建。这里肯定没有问题,那么问题肯定出现在线程的初始化里。
线程伪代码:

DWORD MyMainWnd::Run2()
{
	string strGetIP="";
	char m_szTemp [MaxFileSize_1M];
	int nLength = 0;
	while (true)
	{
	...
	}
	return 0;
}

单步走,定位问题:char m_szTemp [MaxFileSize_1M];在分配较大空间的临时变量的时候系统会插入chkstk函数来检测是否超过堆栈上已经分配的空间,那么他的单元是多大呢?对于X86来说是4K x64是8k

解决方案

网上说是改成new的分配方式,但是我原本就是,那么排除这种解决方法。我这边的解决方法是:项目-》属性-》配置属性-》链接器-》系统 将堆栈保留大小改成50M。
在这里插入图片描述

拓展

读取位置冲突正常是堆栈分配出了问题,正常是分配的空间小了;
如果遇到“读取访问权限冲突”,优先考虑,代码中出现读取空指针野指针的内部变量;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vs 出现chkstk.asm问题的解决方式 的相关文章

  • 自己动手写操作系统第二章 pmtest1.asm分析

    34 pm inc 34 描述符 Usage Descrptor Base Limit Attr Base dd Limit dd Low 20 bits available Attr dw lower 4 bits of higher b
  • __asm void MSR_MSP(uint32_t addr) 提示:error:expected '(' after 'asm'

    SYSTEM sys sys c 33 7 error expected 39 39 before 39 void 39 ASM void MSR MSP u32 addr 在STM32中的sys c文件编译报出这个错误时 xff1a AS
  • KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法

    1 问题 KEIL compiler 设置为 use default compiler version 5 可以正确编译以下汇编和C混合代码 xff0c 更改编译器为V6 12后不识别 ASM关键字 xff0c 并对汇编语法报错 替换为 A
  • 关于make zImage时出现include/asm/timex.h:15:28: asm/arch/timex.h: No such file or directory

    root 64 localhost linux cd linux 2 6 18 root 64 localhost linux 2 6 18 make zImage CHK include linux version h SYMLINK i
  • ASM汇编常用跳转指令-极速查

    作者 xff1a 逆向驿站 微信公众号 xff1a 逆向驿站 知乎 xff1a 逆向驿站 若不是老鸟 xff0c 是不是经常为各种JXX汇编跳转指令查资料 xff1f 影响效率 xff0c 更影响潜意识整体分析的 34 灵光一现 34 本公
  • vs 出现chkstk.asm问题的解决方式

    程序编译成功无报错 xff0c 执行debug时 xff0c 突然系统跳chkstk asm 报了堆栈错误 定位问题 我们到堆栈最后执行的地方 xff0c 发现是一个线程创建 这里肯定没有问题 xff0c 那么问题肯定出现在线程的初始化里
  • Gradle 插件 + ASM 实战 - JVM 虚拟机加载 Class 原理

    开篇就提到效能优化涉及的范围会很广 xff0c 考虑后面需要经常用到 asm 字节码插桩 xff0c 我们首先从 Gradle 插件 43 ASM 实战 开始讲 xff0c 但又希望大家能知其然也知其所以然 xff0c 因此我们首先得讲下
  • Android使用ASM修改函数

    目录 参考文章 Android 编译插桩 xff08 一 xff09 xff1a ASM https github com yxhuangCH CSLearn blob master android Android 20 E7 BC 96
  • 2 如何用ASM进行插桩

    假如我们现在有这样一个文件 代码如下 public class Hello public String name hello public static void main String args System out println He
  • 汇编寄存器介绍

    1 通用寄存器 名称 全称 32位 16位 8位 编号 功能 rax 累加器 Accumulator eax ax ah al 0 0000 返回值 rcx 计数器 Count Register ecx cx ch cl 1 0001 第二
  • AOP的底层实现--ASM

    在ASM的核心组件中 Opcodes接口定义了一些常量 尤其是版本号 访问标识符 字节码等信息 ClassReader用于读取Class文件 它的作用时进行Class文件的解析 并可以接受一个ClassVisitor ClassReader
  • 汇编语言中各种寄存器的总结

    汇编语言中各种寄存器的总结 1 通用寄存器 数据寄存器 AX BX CX DX 指针寄存器 SP BP 变址寄存器 SI DI 2 控制寄存器 IP FLAG 3 段寄存器 CS 代码段寄存器 基本概念解释 start作用 DS 数据段寄存
  • 【8086汇编】字符串逆序的实现,附代码

    目录 引言 题目 程序思想 程序例程 程序结果 改进思路 引言 之前有本科的同学需要做一个汇编程序 简单补了补发现自己会嘻嘻嘻 题目 题目 从键盘输入任一字符串 字符数 gt 1 在下一行以相反的次序显示出来 如 输入字符串123abc 在
  • Linux系统调用指南

    Linux系统调用指南 文章是转载 但是我在后面的案例加了不少注解并debug了 如有疑问 留言交流 其实我也不懂 原文链接 blog packagecloud io https zcfy cc article the definitive
  • Java Agent与ASM字节码介绍

    Java Agent Java Agent是jdk1 5以后引入的 也叫做Java代理 javaAgent是运行方法之前的拦截器 我们利用javaAgent和ASM字节码技术 在JVM加载class二进制文件的时候 利用ASM动态的修改加载
  • 使用ASM编写 打印方法运行的时间 代码分析

    请先简单阅读下原文代码 https blog csdn net weixin 44618248 article details 107086410 可以对照源代码在阅读本文同时可以看得更清晰一些 注 以下属于个人学习 理解 如果偏颇过深 非
  • asm:常用语法

    常用语法 1 循环 1 1 使用条件跳转指令实现循环 1 2 使用LOOP指令实现循环 2 字符串 2 1 指定字符串的长度 2 2 字符串指令 2 3 重复前缀 3 数组 4 递归 5 宏 6 文件操作 7 内存管理 1 循环 1 1 使
  • asm:常见指令大全

    常见指令大全 算数指令 INC 指令 DEC 指令 ADD 指令 SUB指令 MUL指令 IMUL指令 DIV指令 IDIV指令 逻辑指令 AND指令 OR指令 XOR 指令 TEST指令 NOT指令 交换指令 xchg 比较指令 CMP指
  • 【asm基础】nasm和masm的一些区别

    差异点说明 1 nasm是区分大小写的 2 nasm中访问内存需要使用 将内存地址括起来 例如 bar equ 2 mov rax bar mov rax bar 这个才是存储地址中内容的操作 3 nasm不存储类型信息 所以也不能使用MO
  • 用汇编语言实现结构体的输入和保存

    COUNT EQU 1 ALL INPUT MACRO STRING NUM FUNCTION MOV DX OFFSET STRING MOV AH 9H INT 21H MOV DI OFFSET INFO NUM MOV AX SIZ

随机推荐