- 博客(18)
- 收藏
- 关注
原创 windbg汇编函数堆栈知识
使用windbg分析CPU、内存、崩溃、调试等,难免会遇到汇编代码,尤其堆栈信息。指令码和汇编一一对应。除了汇编、C/C++程序编译的二进制文件是CPU识别的指令码。其它C#、JAVA编译后的二进制文件,都是自身语言的解释性指令,运行过程,还需要解析成CPU识别的指令码,才能被执行。
2023-03-06 23:09:53
583
原创 windows收集dmp方法
3.windows收集dmp方法.不同的场景,需要用不同的方式取DMP。1、procdump:适用于监控运行过程的崩溃、CPU、内存泄漏随机取DMP。2、windbg: 更适用于启动过程崩溃。3、任务管理器:运行过程非崩溃异常,好处是不需要安装工具。4、注册表配置:运行过程随机崩溃。5、代码实现异常捕获:运行过程随机崩溃。
2023-03-06 23:04:34
808
原创 PC软件问题定位工具-windbg
1. windbg工具使用。windbg是微软的工具,可以从百度或微软官网获取。工具支持:1. 分析dmp文件.2. 定位CPU、内存、崩溃等异常问题。3. 代替VS调试C++程序。
2023-03-05 16:24:04
806
原创 PC软件崩溃定位方式-windbg
本篇适用于WINDOWS的C/C++编译的程序分析,不适用于C#/java程序分析。windbg是微软的工具,可以去微软官方搜索下载。该工具可以调试exe,也可以导出收集dmp文件,用于后续分析。当前方式主要应用于启动的瞬间崩溃。分析步骤:1. 启动windbg。2. 在windbg配置pdb符号文件路径。3. 通过windbg加载exe。4. 通过windbg运行exe。5. 用windbg命令分析崩溃代码。
2023-03-05 13:15:24
2358
原创 PC软件崩溃定位方式-procdump
本篇适用于WINDOWS的C/C++编译的程序分析,不适用于C#/java程序分析。procdump是微软的工具,可以去微软官方搜索下载。该工具可以捕获启动、运行过程的崩溃异常,并保存到本地dmp文件.分析步骤:1. 通过procdump监控程序随机时间点的崩溃。2. 配置windbg环境。3. 分析崩溃代码。
2023-03-05 12:47:34
1465
原创 PC软件崩溃定位方式-系统日志
PC软件崩溃定位方式-系统日志.基本步骤:1、查看WINDOWS事件日志,收集应用错误信息。2、准备windbg环境。3、定位代码位置。
2023-03-04 23:13:26
6313
2
原创 thinkphp5支持跨域(post-get-option请求)
客户端跨域请求客户端发送GET或POST之前,可能会先发送OPTION请求,以查询服务是否支持跨域。所以thinkphp需要做两样事:1、响应OPTION请求支持跨域。2、响应实际的GET/POST请求支持跨域。OPTION请求支持跨域在public\index.php开始地方添加:if($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { header("Access-Control-Allow-Origin: *"); hea
2021-05-23 18:56:18
1029
原创 thinkphp5配置打印系统日志
1、设置启用调试模式 config/app.php设置: "app_debug"=>true2、配置日志级别: config/log.php 默认是所有日志都打印。3、日志路径:在config/log.php配置。日志路径默认根目录/runtime/log/日期/xxx.log...
2021-05-22 09:04:43
1520
原创 thinkphp5新增模块访问报错404
新增模块使用pathinfo方式报错404,比如:需要检查:1、nginx是否启用了pathinfo支持。location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }}2、控制器文件名首字母是否大写比如Index.php的I需要大写:api\controller\Index.php3、检查控制器代码命名空间规则:names...
2021-05-22 08:39:14
1698
原创 javascript(js-h5)的websocket简单封装使用例子
封装websocket后的功能1、提供接口myws_start(url),简单启动ws。2、提供接口myws_send(data), 发送数据。3、支持自动重连,重连间隔5000ms。源码和环境准备1、封装的websocket保存为 myws.js, 源码见后文。2、使用 index.html 进行测试:。3、在浏览器按F12打开开发者窗口,在console控制台查看打印的日志。index.html 源码<!DOCTYPE HTML><html>
2021-05-15 16:09:35
890
原创 windows删除文件失败、文件访问被拒绝,需要system的权限
问题现象windows删除文件时,提示你需要system提供的权限才能对此文件进行更改,并且重试无效。解决方案一、更改文件/文件夹所有者为当期windows登录用户。--注意:当期登录用户必须具有管理员权限。二、应用三、设置完成后,然后去重新删除即可。...
2021-05-01 13:05:15
5116
1
原创 windows系统自带cmd命令下载文件(类似linux的wget下载文件)
命令和环境测试环境:win10使用powershell附带的curl命令实现下载,而powershell是windows自带的, 格式:powershell curl -o "输出的文件名" "下载的url"。文件名和url记得最好带双引号。命令举例下面举例下载迅雷安装包,脚本可以保存为test.bat, 然后双击test.bat看效果,如果腾讯、360管家拦截,放行就可以了,或者右键管理员权限运行:::下载迅雷安装包::: %~dp0 的意思是当前脚本所在路径...
2021-04-29 22:41:55
48788
1
原创 C++ 跨平台线程安全队列简单例子
C++ 线程安全队列支持的功能1、支持多线程。2、等待数据超时。3、最大队列长度设置。 入列时候,检查长度,过长则清空后再入列。 出列时候,不检查长度。 4、c++跨平台。5、新数据到来及时通知等待数据的线程。使用到的 c++ stl 标准库:1、mutex :用于线程锁。2、queue: 队列。3、condition_variable:条件变量,用于等待和通知。类似windows事件。4、thread:线程和睡眠。...
2021-04-23 23:46:06
592
原创 C++跨平台多线程简单例子
C++跨平台多线程简单例子,C++标准头文件<thread>包含了线程、睡眠、时间的定义。线程:std::thread。睡眠:std::this_thread::sleep_for()。时间:std::chrono::microseconds(5000)。即5秒。多线程简单应用代码:#include <iostream>#include <thread>void thread_1() { std::cout << "我是在线程
2021-04-23 00:01:15
405
原创 多线程与WINDOWS窗口创建、消息循环
在多线程中,GetMessage()必须和创建窗口在同一个线程。否则:1、GetMessage的调用会一直堵塞。消息处理函数不会被调用。2、SendMessage也无法发消息,发了对方也接收不到不能及时处理。下面梳理多线程、创建窗口、消息循环的方式和结果:一、以往大多在WIN32界面程序创建窗口,即:int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdSh
2021-04-22 23:43:53
2060
原创 WIN32 VC Windows消息循环简单例子
#include <windows.h> //包含 Windows 相关的 API 函数//这里就是所谓的消息处理函数了//CALLBACK 说明当前函数是回调函数, 就是说明调用约定//hwnd:窗口句柄, uMsg:收到的消息, wParam, lParam:与该消息有关的参数LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg) ...
2021-04-22 22:42:44
688
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人