BianChengNan's Blog

Coding is hard, you can make it easy!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

[原]调试实战——使用windbg调试excel启动时死锁

发表于 2019-10-18 | 更新于: 2019-10-18 | 分类于 调试 , 调试案例
字数统计: | 阅读时长 ≈ 分钟

前言

这是几年前在项目中遇到的一个死锁问题,在博客园发布过。我对之前的笔记进行了整理重新发布于此。
本文假设小伙伴们知道一些基本概念,比如什么是.dump文件(转储文件,进程在某一时刻的快照),什么是windbg(windows下的调试利器),windbg的基本用法,调用栈,调用约定,等等。

阅读全文 »

[原]使用64位的编译工具进行编译

发表于 2019-10-11 | 更新于: 2019-10-11 | 分类于 开发 , 工具
字数统计: | 阅读时长 ≈ 分钟

缘起

最近在编译项目的时候总是报虚拟内存不足(项目中使用了大量的模板)。一般情况下,vs会使用32位的编译工具进行编译,用64位的编译工具应该能解决类似的问题。本以为是一件挺简单的事,但是没想到遇到不少坑,本文记录了折腾的过程,希望对有类似需求的小伙伴有所帮助。

阅读全文 »

[原]调试实战——PInvoke导致栈破坏

发表于 2019-10-03 | 更新于: 2019-10-03 | 分类于 调试 , .NET
字数统计: | 阅读时长 ≈ 分钟

缘起

最近项目中遇到一个诡异的问题,程序在升级到.net4.6.1后,执行某个功能时会崩溃,提示访问只读内存区。大概规律如下:

  1. debug版不崩溃,release版稳定崩溃。
  2. 只有x64位的程序崩溃,32位及anycpu编译出来的程序运行不会崩溃。
  3. 出问题的代码范围很小(按钮点击事件代码不多)。

根据以上信息,各位小伙伴有什么思路吗?

阅读全文 »

[原]Cmake生成指定vs版本的工程文件

发表于 2019-09-29 | 更新于: 2019-09-29 | 分类于 开发 , 工具
字数统计: | 阅读时长 ≈ 分钟

前言

很多开源库都是使用makefile的形式组织的,如果我们不习惯使用命令行进行编译,我们可以使用cmake或者cmake-gui来生成工程文件,进而可以通过GUI的形式进行编译。本文主要总结了如何通过指定generator来生成想要的特定版本的工程文件。

阅读全文 »

[原]排错实战——使用process explorer替换任务管理器

发表于 2019-09-14 | 更新于: 2019-09-14 | 分类于 排错
字数统计: | 阅读时长 ≈ 分钟

前言

一般,我们会使用任务管理器查看系统中有哪些进程正在运行,强制杀掉某个进程。可是系统自带的任务管理器功能有限,process explorer是一个功能更强大的工具。它可以让我们查看更多更详细的信息( 比如查看某个进程的父进程,进程加载了哪些dll,打开了哪些文件,线程的cpu使用情况,线程的调用栈,哪些文件被哪些进程占用了,等等 …… )。有没有办法让process explorer替换系统自带的任务管理器呢?:thinking:

阅读全文 »

[原]C++新标准之std::thread

发表于 2019-09-08 | 更新于: 2019-09-08 | 分类于 开发 , c++11
字数统计: | 阅读时长 ≈ 分钟

概览

从C++11开始提供了线程的支持,终于可以方便的编写跨平台的线程代码了。除了std::thread类,还提供了许多其它便利同步的机制,本篇总结是C++11学习笔记系列的首篇总结。

阅读全文 »

[原]UEFI+GPT启动VHD

发表于 2019-09-01 | 更新于: 2022-06-26 | 分类于 运维
字数统计: | 阅读时长 ≈ 分钟

1. 缘起

最近因为不小心中招了(一直在裸奔),又面临着重装系统的尴尬,虽然之前有备份,但是时间已经很久了,而且恢复一次跟重装一遍差不多,没有多大优势。之前同事帮我弄过从vhd文件启动系统,很是方便,可以备份vhd文件即可。借此机会,决定好好研究下来龙去脉。

阅读全文 »
1…910
BianChengNan

BianChengNan

97 日志
27 分类
168 标签
RSS
GitHub 知乎 博客园
© 2019 — 2022 BianChengNan | 全博客共 字
0%