debugger中如何修改C++里数据类全局变量?

seagpf 2011-03-26 10:13:47
各位大侠!我的一个全局变量是C++数据类,里面有很多数据成员,每个成员都是一个小类,在小类里面存储数据,shell里用d看内存的方法不支持C++中的“.”“->”符号,我怎么能查看和修改被类封装了的数据呢?
...全文
201 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容简介 · · · · · ·   本书作为有关 Visual C++ Debugger的专著,是一本非常难得的好书。书深入地分析了开发不包含逻辑和语法错误的代码技巧以及调试程序的基本原理,介绍了开发和调试命令行代码的过程和方法,说明了关于定位、分析及修复编程错误的方法,介绍了开发 Visual C++程序时所遇到的特殊调试问题。   本书是所有软件工程师的必读书籍,也可作为大专院校师生的参考资料。 目录 ······ 第一部分 代码开发技巧 第1章 编写好的代码. l.l 谁需要本书? l.2 教学方法 1.3 从何处开始阅读? 1.4 警告!并非所有的C/C++编译器都完全相同 · · · · · · (更多) 第一部分 代码开发技巧 第1章 编写好的代码. l.l 谁需要本书? l.2 教学方法 1.3 从何处开始阅读? 1.4 警告!并非所有的C/C++编译器都完全相同 1.5 语言无关的设计工具101 1.5.l 准备 1.5.2 模型! l.5.3 结构图、伪代码及IPO框图 l.6 好的程序设计的五点要素 1.7 规则意味着可以打破 1.7.1 安塞尔亚当斯(Ansel Adams)或毕加索(Picasso) 1.7.2 注释块 1.7.3 标识符:identifiers、IDENTIFIERS和Identifiers 1.7.4 间隔与缩进 1.8 数据型 1.9 匈牙利表示法 l.9.1 MFC、句柄、控件及结构的命名规范 1.9.2 一般前缀命名规范 1.9.3 变量命名规范 1.9.4 应用程序符号命名规范 1.9.5 Microsoft MFC宏命名规范 1.9.6 库标识符命名规范 1.9.7 静态库版本命名规范 1.9.8 动态连接库命名规范 1.9.9 windows.h命名规范 1.10 操作符优先级 1.11 小结 第2章 使用编译器忧化 2.l 编码的责任与编译器的优化 2.2 Microsoft Visual C++的优化 2.2.1 调度指令 2.2.2 函数级连接 2.2.3 字符串池 2.2.4 使用register键字 2.2.5 常量和复制的传播 2.2.6 消除死代码和死存储 2.2.7 删除冗余于表达式 2.2.8 优化循环 2.2.9 降低强度 2.2.10 inline键字的使用 2.2.11 省略帧指针 2.2.12 关闭堆栈检查 2.2.13 覆盖堆栈 2.2.14 函数调用之间允许使用别名 2.2.15 全局优化 2.2.16 产生内部函数的内联 2.2.17 优化math.h 2.3 Microsoft C++的优化开关 2.4 使用 Microsoft Visual Studio设置编译器选项 2.4.1 Project Settings对话框的 General型 2.4.2 Project Settings对话框的 Code Generation型 2.4.3 选择结构对齐方式 2.4.4 Project Settings对话框的 Customize型 2.4.5 Project Settings对话框的 Optimizations型 2.5 建立发行版本的建议 2.6 小结 第3章 逻辑与语法错误 3.l 好的调试策略 3.2 四种程序错误型 3.2.l 语法错误 3.2.2 连接错误 3.2.3 运行错误 3.2.4 逻辑错误 3.3 查看错误消息 3.4 预防性维护 3.4.l 桌面检查的含义 3.5 异常处理设计 3.6 “请多多支持” 3.7 Microsoft Visual C++的帮助 3.8 小结 第4章 debugger 4.l 确认Debugger可以使用 4.2 启动Debugger 4.2.1 Step Into和Step Over的区别 4.2.2 Go 4.2.3 Run to Cursor 4.3 理解Debugger工具栏图标 4.3.1 Restart 4.3.2 Stop Debugging 4.3.3 Break Execution 4.3.4 Apply Code Changes、Edit and Continue 4.3.5 Show Next Statement 4.3.6 Step Into 4.3.7 Step Over 4.3.8 Step Out 4.3.9 Run to Cursor 4.3.10 Quick watch 4.3.11 Watch 4.3.12 Variables 4.3.13 Regisers 4.3.14 Meomry 4.3.15 Call Stack 4.3.16 Disassembly 4.3.17 Debugger Toolbar Menu Equivalents 4.4 其他Debug菜单选项 4.4.1 Step Into Specific Function 4.4.2 Excmpions 4.4.3 Threads 4.4.4 Modules 4.5 本地菜单Debugger选项 4.5.1 List Members 4.5.2 Type Info 4.5.3 Parameter Information 4.5.4 Complete Word 4.5.5 Go Definition/Refefence 4.5.6 Go To Disassembly 4.5.7 Insert/Remove Breakpoint。 4.6 Debugger窗口 4.6.1 Trae窗口 4.6.2 Watch窗口 4.7 View菜单和Debugger窗口 4.7.1 Workspace 4.7.2 Output 4.8 以不同的数据型查看观察变量 4.9 打开Just-in-Time调式 4.10 Options窗口的Debug标签 4.10.1 Hexadecimal Display 4.10.2 Source Annotation 4.10.3 Code Bytes 4.10.4 Symbols 4.10.5 Parameter Values 4.10.6 Parameter Types 4.10.7 Return Value 4.10.8 Load COEF& Exports 4.10.9 Address 4.10.10 Format 4.10.11 Re-evaluate Expression 4.10.12 Show Data Bytes 4.10.13 Fixed Width 4。10.14 Display Unicode Strings 4.10.15 View Floating Point Registers 4.10.16 Just-in-Time Debugging 4.10.17 OLE RPC Debugging 4.10.18 Debug Commands Invoke Edit and Continue 4.11 键盘映射 4.12 Debugger快捷键 4.13 小结 第5章 调试版本与发行版本 5.l 缺省的调试版本建立与发行版本建立设置 5.2 为调试版本建立修改工程设置 5.2.l 修改调试选项 5.2.2 修改产生调试信息的格式 5.2.3 产生一个映射文件 5.2.4 重定向调试输入和输出 5.3 什么是.pdb文件? 5.4 什么是.dbg文件 5.5 调试优化的代码 5.6 打开Debugger的另一种方法 5.7 使用基本版或调试版本 5.8 C/C++运行调试库 5.8.l 旧版iostream.h和新版iostrearn之间的混乱 5.9 连接器参考资料 5.10 在调试版本检测发行版本错误 5.10.l 局部变量的自动初始化 5.10.2 检查函数指针调用稚栈的合法性 5.10.3 检查调用堆栈的合法性 5.11 TRACEN 5.12 VEAIFY宏 5.13 移植Visual C++旧的32位版本 5.13.l 转换早期的32位工作空间和工程 5.13.2 与Visual C++以前的版本共存 5.14 小结 第二部分 面向过程的环境 第6章 定位、分析和修复命令行代码错误 6.l 快速启动调试 6.1.l 启动Debugger的快速方法 6.1.2 变量初始化跟踪 6.1.3 小心调试代码 6.1.4 快速查看变量的内容 6.1.5 途停止Debugger 6.1.6 执行到代码的指定行 6.l.7 全速执行到一个断点 6.1.8 运行至光标处 6.1.9 现在测试 6.2 高级Debugger技巧 6.2.l 使用新值运行 6.2.2 循环调试技巧 6.2.3 调用调试函数 6.2.4 递归调用与调用堆栈 6.2.5 查看反汇编代码 6.3 进一步观察变量 6.3.l 使用QuickWatch窗口 6.3.2 使用Watch窗口 6.4 小结 第7章 调试内联汇编语言代码 7.l 汇编语言初步 7.1.l 数据型 7.1.2 寄存器 7.1.3 寻址模式 7.1.4 指针 7.1.5 协处理器 7.2 调试 7.2.l 减法运算 7.2.2 使用256位整数 7.2.3 程序循环 7,2.4 使用协处理器求和实数. 7.2.5 使用协处理器计算正切值 7.3 小结 第8章 在Windows代码定位、分析和修复错误 8.l 使用两台计算机调试 8.1.l 准备远程目标计算机 8.1.2 准备主计算机 8.1.3 启动调试会话 8.2 简明Windows入门 8.2.l 基本的Windows代码 8.2.2 调试文件详述 8.2.3 程序执行的情况 8.3 调试 8.3.l 一个动画位图程序 8.3.2 使用鼠标绘画 8.4 小结 第三部分 面向对象过程的环境 第9章 定位、分析和修复命令行的错误 9.l 高级调试工具 9.l.l 内存卸出 9.1.2 定位错误参数从何处传递而来 9.1.3 查找何处修改了指针 9.2 Class View窗口要素 9.2.1 ClassView窗口的 Grouped by Access功能 9.2.2 ClassView窗口的 Base Classes功能 9.2.3 ClassView窗口的 References功能 9.2.4 ClassView窗口的 Derived Classes功能 9.2.5 ClassView窗口菜单的其余项 9.2.6 ClassView窗口的Properities功能 9.2.7 在ClassView窗日添加文件夹 9.2.8 在文件夹之间移动 9.2.9 隐藏或显不 ClassView窗口 9.3 调试ardc和argv[] 9.4 小结 第10章 使用MFC库开发Windows程序 10.l 为什么使用库 10.2 一个真正的基础一一CObject 10.3 什么是应用程序向导和向导 10.4 一个图形程序 10.4.l 使用AppWizard 10.4.2 使用 ClassWizard 10.4.3 建立AppWizard代码 10.4.4 AppWizard模板代码 10.4.5 在客户区的图形对象 10.5 剖面法 10.6 小结 第11章 定位、分析和修复 MFC Windows代码的错误 11.l 内存问题 11.1.l 有问题的代码 11.1.2 定位和分析 11.1.3 修复工程 11.2 绘图问题 11.2.l 有问题的代码 11.2.2 定位和分析 11.2.3 修改工程 11.3 小结 第四部分 标准模板库(STL) 第12章 STL编程实践 12.1 多体系结构.. 12.2 掌握 C++ 12.3 STL――进退维谷的数据结构 12.4 初识 STL 12.5 STL和HP公司 12.6 大众化的 STL 12.7 STL总览 12.8 ANSI/ISO C++接受STL的过程 12.9 STL基本组件 12.9.l 什么是容器? 12.9.2 什么是适配器? 12.9.3 什么是算法? 12.9.4 什么是迭代器? 12.9.5 其他的STL组件 12.10 完整的STL程序包 12.11 杂乱的C/C++家族 12.12 回顾数据结构 12.12.l 静态与动态 12.12.2 型指针 12.12.3 VOid指针 12.13 复习匈牙利命名法 12.14 函数重载 12.15 函数指针 12.16 运算符重载 12.16.l 运算符和函数调用的重载 12.16.2 编写自己的重载运算符 12.17 从结构到模板 12.17.l template关键字 12.17.2 模板语法 12.17.3 模板函数 12.17.4 模板 12.18 为什么STL比模板好 12.19 小结 第13章 定位、分析和修复STL代码的错误 13. l 从标准C++转向STL语法的过程出现的问题 13.1.l 用迭代器遍历容器 13.1.2 仔细研究迭代器 13.1.3 流迭代器 13.1.4 为什么使用end() 13.1.5 复制列表 13.1.6 列表的列表 13.1.7 STL字符串指针的麻烦 13.1.8 释放 STL指针 13.2 一个C++程序转变为STL语法的例子 13.2.l 第一步――更新aSingleCard 13.2.2 第二步――更新 WarDeck 13.2.3 第三步――修复STL代码的执行错误 13.2.4 第四步――更新Opponent 13.2.5 第五步――运转的STL程序 13.3 STL语法的源文件Wargame.cpp 13.4 小结 第五部分 特殊的调试问题 第14章 使用DLL工作 14.l 创建一个基于MFC的动态链接库 14.1.l 头文件 Framer.h 14.1.2 源代码文件Framer.cpp 14.1.3 建立Framer.dll 14.2 创建使用DLL的主应用程序 14.2.l 头文件 DLLDemoView.h 14.2.2 源代码文件DLLDemoView.cpp 14.3 更加仔细地查看 14.3.1 远程调试 14.3.2 有问题的代码 14.3.3 改正后的代码 14.4 小结 第15章 使用ActiveX控件工作 15.1 开发一个 ActiveX控件 15.1.l 使用Colltrolwizard 15.1.2 Test Container 15.1.3 产生一个真实的Clock控件 15.2 调试 Clock控件 15.2.l 准备远程目标计算机 15.2.2 准备主计算机 15.2.3 开始调试过程 15.2.4 查找问题 15.3 小结 第16章 调试 COM、ATL和DHTML 16.1 COM对象模型 16.2 创建一个ATL多边形工程 16.2.1 优化模块代码 16.2.2 测试控件 16.3 调试ATLCOM控件 16.4 小结 第17章 STL和 MFC编程 17.l 产生一个STL和MFC应用程序 17.1.l 复数 17.1.2 模板语法 17.1.3 基本的应用程序代码 17.2 调试 17.3 小结
一本介绍ARM开发工具,ADS的TXT电子书,包含以下内容: 第1章 ARM调试方法和工具 1.1 调试原理概述 1.1.1 传统调试方法 1.1.2 ARM调试的特点 1.1.3 ARM调试原理 1.2 ARM调试方法 1.3 ARM开发工具介绍 1.3.1 ARM开发工具ADS 1.3.2 其他开发工具 第2章 ADS介绍 2.1 ADS的系统资源 2.1.1 ADS系统的组成 2.1.2 ADS系统所提供的文件 2.2 ADS系统的文件型 2.3 命令行方式和图形方式 2.3.1 命令行方式 2.3.2 图形方式 第3章 工程项目 3.1 工程项目和文件 3.1.1 建立一个工程项目 3.1.2 建立一个源文件 3.1.3 编辑新建立的源文件 3.1.4 把源文件加到工程项目 3.2 工程项目管理 3.2.1 工程项目窗口 3.2.2 工程项目窗口的级联菜单 3.2.3 工程项目管理 3.2.4 把文件分组 3.3 生成目标和生成选项 3.4 工程项目模板 3.4.1 关于ARM所提供的工程项目模板 3.4.2 把映像格式的工程项目转换成库工程项目 3.4.3 自己创建工程项目模板 3.5 复杂的工程项目 3.5.1 关于设置文件的搜索路径 3.5.2 关于生成目标 3.5.3 建立子工程项目 3.6 工程项目操作命令 第4章 文件和库 4.1 文件管理 4.1.1 文件管理方法 4.1.2 文件操作命令 4.1.3 文件比较 4.2 文件映射 4.3 系统头文件和用户头文件 4.4 ARM系统库 4.4.1 ARM运行时库(runtime libraries)概述 4.4.2 建立一个使用c/c++库的应用程序 4.4.3 建立一个不包含C库的应用程序 4.5 关于使用用户库 第5章 编辑器及浏览器 5.1 编辑器窗口功能介绍 5.2 搜索和替换操作 5.2.1 搜索和替换的方法 5.2.2 使用习惯表达式的一般规则 5.2.3 搜索操作命令 5.3 编辑操作命令 5.4 编辑器设置 5.4.1 编辑器设置面板 5.4.2 字体和制表符(Font&Tabs)设置面板 5.4.3 文本颜色(Text Colors)设置面板 5.4.4 为工程项目的常用关键字设置颜色 5.5 浏览器 5.5.1 浏览器概述 5.5.2 浏览操作命令 5.6 浏览器视窗 5.6.1 分视窗 5.6.2 目录视窗 5.6.3 分层视窗 5.7 浏览器应用 5.7.1 与浏览器有关的级联菜单 5.7.2 使用浏览器向导 第6章 汇编程序规则和汇编器应用 6.1 汇编程序规则 6.1.1 汇编语言程序的组成和格式 6.1.2 汇编语言程序的表达式 6.1.3 预定义寄存器 6.2 汇编器使用方法 6.2.1 在命令行方式使用汇编器 6.2.2 在图形方式使用汇编器 6.2.3 汇编器的可选项 6.3 设置汇编器的可选项 6.3.1 与目标有关的可选项 6.3.2 与ATPCS有关的选项 6.3.3 汇编器特性选项 6.3.4 关于预定义的有关选项 6.3.5 列表控制选项 6.3.6 附加选项 6.3.7 其他选项 6.4 汇编器应用 第7章 C/C++语言程序应用 7.1 编程规则 7.1.1 使用Pragmas 7.1.2 使用关键词 7.2 标准C/C++语言扩展 7.3 C/c++语言数据型 7.4 C/C++语言和汇编语言混合编程 7.4.1 嵌入式汇编语言的用法 7.4.2 程序之间的相互调用 第8章 编译器的可选项设置及应用 8.1 编译器概述 8.1.1 编译器概述 8.1.2 编译器使用方法 8.1.3 ARM编译器在搜索文件时要注意的几个问题 8.2 编译器的可选项设置 8.2.1 Target and Source设置面板 8.2.2 ATPCS设置面板 8.2.3 Warnings设置面板 8.2.4 Errors设置面板 8.2.5 Debug/Optionization设置面板 8.2.6 Preprocessor设置面板 8.2.7 Code Generation设置面板 8.2.8 Extras设置面板 8.2.9 其他命令行可选项 8.3 编译器应用 第9章 ADS其他选项设置 9.1 windows窗口操作命令 9.2 关于IDE的通用选项设置 9.2.1 Build Settings设置面板 9.2.2 IDE Extras设置面板 9.2.3 Plugin Settings设置面板 9.2.4 Shielded Folders设置面板 9.2.5 Source Trees源路径设置面板 9.3 关于生成目标的通用选项设置 9.3.1 Targget Settings设置面板 9.3.2 Build Extras设置面板 9.3.3 ARM Target设置面板 9.4 调试器选项设置 9.4.1 ARM Debugger设置面板 9.4.2 ARM Runner设置面板 9.4.3 ARM Features设置面板 9.5 操作命令设置和工具栏设置 9.5.1 设置菜单的操作命令 9.5.2设置工具栏 9.6 关于VCS 第10章 ARM链接器 10.1 链接的一般概念 10.1.1 链接器的输入和输出 10.1.2 映像文件的加载和执行 10.1.3 输入段在映像文件的排列顺序 10.2 链接器的使用方法 10.2.1 在命令行方式使用链接器 10.2.2 在图形方式使用链接器 10.3 ARM链接器选项设置 10.3.1 ARM链接器的选项 10.3.2 Output设置面板 10.3.3 Option设置面板 10.3.4 Layout设置面板 10.3.5 Listings设置面板 10.3.6 Extras设置面板 10.3.7 在图形方式没有使用的选项 10.4 链接器应用 10.5 地址映射过程和seatter描述文件 10.5.1 链接器的地址映射过程 10.5.2 seatter描述文件的结构 10.5.3 seatter描述文件的规则 10.5.4 seatter描述文件的应用 第11章 ADS几个有特色的功能 11.1 在图形方式使用命令行 11.1.1 via格式文件 11.1.2 ADS图形方式的命令行表达窗 11.1.3 生成选项设置参数的导入和导出 11.2 symdefs格式文件 11.2.1 symdefs格式文件的内容 11.2.2 symdefs格式文件的作用 11.2.3 建立symdefs格式文件 11.3 代码转换工具fromELF 11.3.1 代码转换工具fromELF简介 11.3.2 fromELF命令行选项 11.3.3 fromELF工具在图形方式的选项设置 11.3.4 fromELF实用工具应用 11.4 隐藏和重命名全局符号文件steering 第12章 ARM调试工具AXD介绍 12.1 ARM调试工具AXD介绍 12.1.1 几个基本概念 12.1.2 ARM调试工具AXD介绍 12.2 调试器的使用方法 12.2.1 armsd使用方法 12.2.2 A。XD使用方法 12.3 使用AXD调试用户程序 12.3.1 基本知识 12.3.2 控制程序运行的工具图标 12.3.3 控制程序运行的操作命令 12.3.4 在程序窗口的级联菜单 12.4 关于调试器设置 12.4.1 调试目标的界面配置 12.4.2设置调试目标 12.4.3 配置处理器 12.5 AXD 00If的菜单选项 12.5.1 文件操作命令 12.5.2 搜索命令 12.5.3 与处理器相关的视窗 12.5.4 与目标系统相关的视窗 12.5.5 窗口管理命令 12.6 AXD II的数据格式 12.6.1 设置当前数据格式 12.6.2 设置默认的数据格式 12.7 主窗口的工具图标 第13章 调试工具AXD应用 13.1 寄存器 13.1.1 寄存器的使用方法 13.1.2 寄存器视窗的级联菜单i 13.2 存储器 13.2.1 存储器的使用方法 13.2.2 存储器视窗的级联菜单 13.2.3 调试用户程序应用举例 13.3 在调试使用断点 13.3.1 断点使用方法 13.3.2 断点管理级联菜单 13.4 观测项和观测点 13.4.1 使用观测项(Watch) 13.4.2 使用观测点(Watchpoint) 13.5 其他调试方法 13.5.1 调试时观察程序变量 13.5.2 在调试程序时使用符号表 13.6 Profiling功能 附录A 按菜单索引 A.1 按CodeWarriror IDE 的菜单索引 A.2 按AXD 的菜单索引 附录B 术语解释 参考文献

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧