⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dumper.h

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 H
字号:
/* dumper.h   Copyright 1999,2001 Red Hat Inc.   Written by Egor Duda <deo@logos-m.ru>This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license.  Please consult the file "CYGWIN_LICENSE" fordetails. */#ifndef _DUMPER_H_#define _DUMPER_H_#include <windows.h>typedef struct{  LPBYTE base;  DWORD size;} process_mem_region;typedef struct{  DWORD tid;  HANDLE hThread;  CONTEXT context;} process_thread;typedef struct{  LPVOID base_address;  char* name;} process_module;enum process_entity_type{  pr_ent_memory,  pr_ent_thread,  pr_ent_module};typedef struct _process_entity{  process_entity_type type;  union    {      process_thread thread;      process_mem_region memory;      process_module module;    } u;  asection* section;  struct _process_entity* next;} process_entity;class exclusion{public:  int last;  int size;  int step;  process_mem_region* region;  exclusion ( int step ) { last = size = 0;			   this->step = step;			   region = NULL; }  ~exclusion () { free ( region ); }  int add ( LPBYTE mem_base, DWORD mem_size );  int sort_and_check ();};#define PAGE_BUFFER_SIZE 4096class dumper{  DWORD pid;  DWORD tid; /* thread id of active thread */  HANDLE hProcess;  process_entity* list;  process_entity* last;  exclusion* excl_list;  char* file_name;  bfd* core_bfd;  asection* status_section;  int memory_num;  int module_num;  int thread_num;  void close ();  void dumper_abort ();  process_entity* add_process_entity_to_list ( process_entity_type type );  int add_thread ( DWORD tid, HANDLE hThread );  int add_mem_region ( LPBYTE base, DWORD size );  /* break mem_region by excl_list and add add all subregions */  int split_add_mem_region ( LPBYTE base, DWORD size );  int add_module ( LPVOID base_address );  int collect_memory_sections ();  int dump_memory_region ( asection* to, process_mem_region* memory );  int dump_thread ( asection* to, process_thread* thread );  int dump_module ( asection* to, process_module* module );public:  int sane ();  int collect_process_information ();  void print_core_section_list ();  dumper ( DWORD pid, DWORD tid, const char* name );  ~dumper ();  int init_core_dump ();  int prepare_core_dump ();  int write_core_dump ();};extern int deb_printf ( const char* format, ... );extern char* psapi_get_module_name ( HANDLE hProcess, DWORD BaseAddress );extern int parse_pe ( const char* file_name, exclusion* excl_list );extern BOOL verbose;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -