烧饼修改器显示show

怎么彻底关闭以ShowDialog()显示的窗体
[问题点数:60分,结帖人leafmao]
怎么彻底关闭以ShowDialog()显示的窗体
[问题点数:60分,结帖人leafmao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
2014年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第四
2015年3月 .NET技术大版内专家分月排行榜第三2015年2月 .NET技术大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。【正版报时组】听说每天一点会有个烧饼来报时,真14进来show下ID,IP_李毅吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:18,361,889贴子:
【正版报时组】听说每天一点会有个烧饼来报时,真14进来show下ID,IP
愣好吃,长途跋涉五十里...
所以说还是有遗憾咯。镇楼
然而看到这一幕一点感觉...
我一点也不无聊
今天拍到的和偶像镇,回...
小岚岚,我又想你了!好...
老子笑看三楼
死基佬们!!!!!!!1
笑看楼上全部
兰州烧饼!!!
笑看楼上楼下我马甲
烧饼楼主MUA~大扫把MUA~哆哆MUA~
回复16楼:回他们吧看看吧…
。 。 。 。
插入图片有惊喜哦 亲
什么时候能毕业呢 真tm拙计啊
一口气连换25个马甲
我饿了,顺便刷刷会员
回复:20楼我一直都在
劳资等着翻页
内&&容:使用签名档&&
保存至快速回贴
为兴趣而生,贴吧更懂你。&或.showCursor 显示光标
static var showCursor : bool
Description描述
Should the cursor be visible?
光标是否可见?
It is entirely possible to implement a custom cursor instead of the system one. To do this you would
hide the system one, track mouse position or movement and display your own image in the needed place.
这完全可以做到一个自定义光标,替代系统光标。要做到这点,你需要隐藏系统光标,然后跟踪鼠标位置或移动并且在需要的地方显示你自己的光标图片。
using UnityE
using System.C
public class example :
public void Awake() {
Screen.showCursor =
// Hide the cursor
//隐藏光标
Screen.showCursor =
本脚本参考基于Unity 3.4.1f5英文部分版权属&公司所有,中文部分&
版权所有,未经许可,严禁转载 。21644人阅读
1.Xcode IDE概览
说明:从左到右,依次是“导航窗格(Navigator)-&边列(Gutter)-&焦点列(Ribbon)-&代码编辑窗口(Standard/Primary
Editor)”。
边列(Gutter):显示行号和断点。焦点列(Ribbon):灰色深度与代码嵌套深度相关:鼠标悬停可突出显示右侧相应代码块(Focus
code blocks on hover),鼠标单击可折叠右侧相应代码块(Code folding)。
2.偏好设置
通过“command+,”快捷键或”Xcode|Preferences”菜单呼出偏好设置。
(1)主题及字体(Preferences-&Fonts & Colors)
选中一种(),例如“Midnight”,然后shift选择Source
Editor/Console中的所有项,点击Fonts设置字体。Xcode默认字体为menlo,可选Consolas、Monaco等其他等宽字体。
(2)编辑器配置(Preferences-&Text Editing)
Show Line Numbers:在gutter中显示行号。Code folding ribbon:显示焦点列。
Focus code blocks on hover:鼠标悬停时突出显示右侧相应代码块。
Page guide at column:显示一行最多支持80个字符的提示分割线。
Indentation:
Prefer indent using:Spaces(为保持一致的视觉呈现和行末注释对齐,建议使用空格)Tab width:4 spaces(tab expand,1个tab=4个空格)Indent width:4 spaces(自动缩进步长=4个空格)
(3)跳转打开方式(Preferences-&Navigation)
Activation:When a tab or window opens,make it active。当新建窗口或标签时,立即激活聚焦。
Navigation:Uses Primary/Focused Editor。打开Project Navigator中指定的文件时,在主编辑器窗口/当前聚焦窗口打开,建议选择Focused。
Optional Navigation:Uses Single Assistant Editor。打开Project Navigator中指定的文件或跳转到符号定义所在文件(command+单击)时,若按下option键,则在辅助窗口打开。
Double Click Navigation:Uses Separate Tab。双击打开Project Navigator中指定的文件或跳转到符号定义所在文件(command+双击)时,新建标签页。
(4)(Preferences-&Source Control)
Enable Source Control:启用/禁用Xcode自带Source Control Manager(SCM)。Comparison View:Show local revision in [Right]
Side。打开version editor比较窗口时,左侧显示服务器基线版本(base),[右侧]显示本地修改过的工作拷贝(local
working copy)。
(5)SDK/Simulator(Preferences-&Downloads)
Downloads:可下载Components(SDK&Simulator)和Documentation。
(6)构建输出目录(Preferences-&Locations-&Locations)
当选择为Default时,Derived Data的目录为~/Library/Developer/Xcode/DerivedData。当选择为Relative时,Derived Data的目录为当前*.xcodeproj所在的目录。当选择为Custom时,Derived Data的目录需自定义。
不建议使用绝对路径,因为写死之后,换环境或换平台,又要重新修改路径,且同名project target的build folder会覆盖,建议使用相对路径(Relative)
3.代码阅读
option+点按:查看选中符号的帮助提示(Quick Help for Selected Item)。
option+双击:打开选中符号的帮助文档。
(2)View Navigator
command+0:Show/Hide left tool panel(Navigator Area)
command+1-8:Project/Symbol/Find/Issue/Test/Debug/Breakpoint/Log Navigator
option+command+0:Show/Hide right tool panel(Utility Area)
option+command+1/2:show the file/quick help inspector
可按下command+0隐藏左侧栏Navigator,再按下option+command+0隐藏右侧栏Utility,只显示Standard/Primary Editor。
(3)View Editor Organization
control+1:Show Related Items(例如Superclasses/Subclasses、Callers/Callees、Protocol&Implementor/Implemented、Includes/Included
By)。可输入实时搜索匹配。
control+2/3:Show&Previous/Next History。可输入实时搜索匹配。
control+4:Show Top Level Items。
control+5:Show Group Files(当前文件夹内的所有文件)。可输入实时搜索匹配。
control+6:Show Document&Items(当前文件的Symbols)。可输入实时搜索匹配。
(4)Eidtor Window/Tab Switch
command+shift+[/]:切换标签页
单/双指左右滑动(control+command+←/→):在单标签页打开的多个文件间切换
(5)Symbol Jump
Quickly,快速全局查找文件、符号,非常常用!
command+点击Editor中选中的符号:跳转到符号定义(jump to definition)。
control+command+J:跳转到指定符号的定义处或实现处(Go to Declaration/Definition)。有时工程正在Loading、或Processing
files时,“command+点击”无法响应,此时可试试control+command+J。
control+command+↑/↓:切换头文件/实现文件(switch
between a source file (.m,*.mm,*.cc) and the associated header&file(.h),Jump to&Previous/Next&Counterpart)。
在Project Navigator中选中文件右键或通过菜单“File-&Show in Finder”:在Finder中定位该文件。
(6)Symbol Navigator
Find菜单或右键快捷菜单可呼叫[Reveal&in&]
filter0:底部编辑框输入符号(show symbols with matching name)= filter1 result+filter3 resultfilter1:show only class and protocol symbols (hide other global symbol types),包括project和system层次。filter2:show only project-defined symbols,过滤显示当前工程中的符号。filter2的结果是filter1的子集,较常用。filter3:show only containers(hide members),过滤显示包含该单词的符号。
注意:control+6只列出当前代码所在interface的符号,而Symbol Navigator是当前文件的所有符号列表的Hierarchy,符号种类包括Classes/Protocols/Functions/Structs/Unions/Enums/Types/Globals。
(7)Code Folding
option+command+←/→:折叠当前代码块,包括@interface …@end、@implementation
option+shift+command+←/→:折叠该文件内所有代码块(方法/函数:{&Methods&Functions&})
control+shift+command+←/→:折叠当前注释块(/*Comment
Blocks*/)
(8)Focus Switch
(shift+)option+command+`:MoveFocus to (Previous)Next Area.
command+J:焦点切换(Move Focus),可配合鼠标和方向键。带‘+’的“Move focus to a new assistant editor”可以快速在辅助编辑窗口中打开头文件(*.h)/实现文件(*.m,*.mm)。
shift+command+J:在项目导航中定位当前编辑其中打开的文件(Reveal
in Project Navigator)。
4.代码编辑
(1)File | New
control+command+N:File | New | Workspace
shift+command+N:File | New | Project
(2)Text Editing
command+[/]:向前/向后缩进
option+command+[/]:Move Line Up/Down
command+/:以双斜杠(//)注释选中的代码,再此按下可取消
Parentheses/Brackets/Braces Matching:双击某个分隔符(如()、[]、{}&等),Xcode会选中匹配代码块。
Editor→Structure→:根据当前光标代码所在位置,自动向外扩展选择外层代码块。
(3)Auto Completion
esc(control+.)就当前输入上下文呼出/隐藏智能提示列表(Auto
Completion List);
上下方向键(↑/↓)在智能提示列表中选择选项。当然,也可以用control+.;enter选中列表中备选的消息符号;
tab在輸入符号不完整时可一截一截匹配;选中消息符号后,tab可在各个参数占位符之间移动,enter可选中参数占位符先临时补位填充。
输入Objective-C对象及消息名,然后输入&],自动补充对象名左侧的[,完成中缀符(infix
natation)包围。
(4)Find菜单(control+单击)
当鼠标定位或选中某个符号时,可呼叫右键快捷菜单:
Find Selected
Text in Workspace:在当前工作空间查找选中文本或光标所在行的OC冒号分割方法名。Find Selected
Symbol in Workspace:在当前工作空间查找选中文本符号或光标所在行的OC冒号分割方法符号。Find
Call&Hierarchy:查找选中文本符号或光标所在行的OC冒号分割方法符号的调用着(Callers)。
对应Find菜单中有Find
Selected&Text&in&Project、Find
Selected&Symbol&in&Project(control+shift+command+F)、Find&Call&Hierarchy(control+shift+command+H)。
说明:Find Call Hierarchy等效于control+1|Callers。
(5)Find & Replace
command+F:当前文件查找。
shift+command+F(command+3):在Find Navigator中全局查找。可在[Preferences-General]中设置Find
Navigator Detail的显示行数(当Navigator Area较窄挤压时)。
Find:可指定查找内容(Text/References/Definitions/Regular Expression);放大镜:下拉可查看最近查找历史;In Project:查找范围(可指定Group);Text:匹配规则(可指定Containing,Matching,Starting with,Ending with);Case:是否区分大小写(可指定 Matching/Ignoring)。
option+command+F:当前文件替换。
option+shift+command+F:在Find
Navigator中全局替换。
Replace:逐个替换;All:所有替换;Done:替换完成。
(6)Copy Symbol
例如,光标停留在NSMutableArray的insertObject:atIndex的前半截单词insertObject上时:
可以有三种复制方式:
command+C:Copy(光标所在位置的单词):insertObject
control+shift+command+C:Copy
Symbol Name(光标所在位置的消息符号名称):-insertObject:atIndex:
option+control+shift+command+C:Copy
Qualified Symbol Name(光标所在位置的消息符号全名,带所属类名):-[NSMutableArray insertObject:atIndex:]
通过上面两种快捷方式,可以便捷地复制Objective-C特殊的冒号分隔的消息符号名称。
(7)Open with External Editor——
&1&在左侧导航栏(Project Navigator)中选中某个文件右键快捷菜单中有【Open with External Editor】,默认呼叫Mac OS X自带的文本编辑器(TextEdit)打开。我们可以按照以下步骤设置快捷键:
【系统偏好设置(System Preferences)-&键盘(Keyboard)-&快捷键(Shortcuts)-&应用快捷键(App Shortcuts)】,点击+号,选择应用程序【Xcode.app】准确填写[菜单标题],即菜单命令名称【Open with External Editor】,聚焦[键盘快捷键]编辑框时,同时按下想要设置的组合键即可,例如(??O)。
可针对Xcode工程代码文件(*.h/*.hh/*.c/*.cc/*.m/*.mm)设置默认打开程序为Sublime Text.app:右键Get Info(command+I),Open With选择Sublime Text.app并且Change All。然后,Xcode|Open
with External Editor将在Sublime Text打开选中文件。
&2&另外,可下载安装插件,支持呼叫SublimeText打开Xcode当前正在编辑的文件。
从github下载打开OpenInSublimeText.xcodeproj工程进行编译(command+B),生成的插件OpenInSublimeText.xcplugin将被集成到目录(~/Library/Application\
Support/Developer/Shared/Xcode/Plug-ins)下。重启Xcode将警告提示Unexpected code bundle &OpenInSublimeText.xcplugin&,忽略警告选择[Load Bundle]即可。Xcode&Editor菜单中将新增[Open In Sublime Text]项,可设置其快捷键位为shift+command+S(??S)。
5.辅助编辑(Assistant Editor)
Assistant Editor有点类似VC中的Code Definition Window。
option+command+enter/,:打开Assistant Editor。
command+enter:关闭Assistant Editor。
使用快捷键进行切换或跳转动作时,若同时按下可以在辅助编辑窗口中打开相应文件或符号(For optional navigation
(Option-clicking or
Option-choosing a file), opens the file in a new Assistant editor pane.)。若在辅助窗口中操作,则在主窗口(Standard Editor)中打开。
option+点击Project Navigator中选中的文件:在辅助编辑窗口中打开选中文件。option+command+点击Editor中选中的符号:在辅助编辑窗口中打开符号定义(jump to definition in assistant editor)。option+control+command+↑/↓:在辅助窗口中打开对应的头文件(*.h)/实现文件(*.m,*.mm,*.cc)。
点击查看shift+command+O、shift+command+F(command+3)选中的文件或符号时,可同时按下option在辅助编辑窗口中打开。
在control+1~6中打开选择结果时,均可同时按下option在辅助编辑窗口中打开。
若在按下option的同时按下shift通常会出现一个导航窗格,可选择在new window/tab/assistant-editor显示打开。
For&Option-Shift navigation (Option-Shift-click
or Option-Shift-choose a file), Xcode displays a graphical navigation chooser showing the current layout. The chooser&prompts you to open the file in any&open
editor pane in any window and tab, or to open the file in a&new editor pane, window, or tab.
6.环境变量()
(1)查看环境变量宏
命令行进入HelloWorld工程目录,执行xcodebuild命令并带上参数:
$&xcodebuild&-project HelloWorld.xcodeproj&-target
HelloWorld&-configuration Debug&-showBuildSettings & xcodebuild_showBuildSettings.txt
则中保存了Build
settings for action build and target &HelloWorld”,其中dump了所有的环境变量。
(2)Xcode5(Mac OS X 10.9)的部分环境变量
约定1:~=当前账户的HOME目录,例如“/Users/faner”。
约定2::BUILD_PATH
= ~/Library/Developer/Xcode/DerivedData/Build。可通过“File-&Project Settings”查看。
约定3:环境变量宏(Build Setting Macros)引用格式:${MACRO},同Build
Phases Run Script中的语法。
下面是摘选自xcodebuild_showBuildSettings.txt的部分常用环境变量。
(a)&ARCH & PLATFORM & SDK
ARCHS = i386
CURRENT_ARCH = i386
PLATFORM_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
PLATFORM_NAME = macosx
SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
SDK_NAME = macosx10.9
(b) PROJECT & SOURCE
PROJECT = HelloWorld
PROJECT_DIR =~/Projects/Learn
Objective-C/HelloWorld
PROJECT_FILE_PATH =${PROJECT_DIR}/HelloWorld.xcodeproj
PROJECT_NAME = HelloWorld
SOURCE_ROOT =${PROJECT_DIR}
SRCROOT =${PROJECT_DIR}
(c) BUILD & CONFIGURATION
BUILD_DIR =BUILD_PATH/Products
BUILD_ROOT =BUILD_PATH/Products
BUILT_PRODUCTS_DIR =BUILD_PATH/Products/Debug
CONFIGURATION = Debug
CONFIGURATION_BUILD_DIR =BUILD_PATH/Products/Debug
CONFIGURATION_TEMP_DIR =BUILD_PATH/Intermediates/HelloWorld.build/Debug
(d) PRODUCT & TARGET
PRODUCT_NAME = HelloWorld
PRODUCT_TYPE = com.apple.product-type.tool// Project Template: Command Line Tool
TARGET_BUILD_DIR =BUILD_PATH/Products/Debug
TARGET_NAME = HelloWorld
(3)设置环境变量
Product -& Edit Scheme(option+command+R)-&Arguments-&Environment Variables中可以添加自定义环境变量(Name为名称,Value为值)。
7.运行调试
(1)Target & Scheme
一个Target是指在一个Project中构建的一个产品,它包含了构建该产品的所有文件,以及如何构建该产品的配置。
一个定义好构建过程的Target成为一个Scheme,可在Scheme中定义Target的六种构建过程:Build/Run/Test/Profile/Analyze/Archive。
Product -&Edit Scheme(编辑配置,快捷键为option+command+R)-&可对Scheme的六种构建过程进行配置(可配置项包括Info、Arguments、Options)。
在Project Navigator中选中某个xcodeproj(例如QQ.xcodeproj),将进入Project Setting页面,可点击左侧图标show/hide project and targets list:
点击targets项可分别设置各target的Build Settings;右击可对target进行delete。
(2)Build
shift+command+K:清除products|debug或release下的Unix executable文件。
option+shift+command+K:删除构建目录(Delete/Clean Build Folder),清理Derived
Data对应target目录下的Build文件夹(包括intermediate和products)。通常用于重新编译整个工程,尝试解决增量编译时部分符号陈旧导致链接不通过的问题。
Product -& Edit Scheme(option+command+R)-&Info-&Build Configuration:选择生成版本(Debug or Release)
command + B:构建(Buid)
(3)Issue & Errors
command+4可定位Issue Navigator:
当编译错误(error)和警告(warning)过多时,点击底端的感叹号,即可忽略编译警告,只显示编译错误:
command + R:运行(Run),可能会重新编译链接。
option+command + R:如果确定代码没有改动,加option键可免重新编译链接,直接运行上次build成功的product(Run Without Building)。
command + .:停止运行(Stop)。
(5)Console
shift+command+Y:显示控制台(Show/Hide the debug area)
shift+command+C:激活聚焦控制台,光标定位到控制台呈可输入状态。
command+K:清除控制台(Debug-&Debug Workflow-&Clear Console)
可安装插件,在打字coding时,自动隐藏调试控制台。
(6)Breakpoint
command + \:当前行设置/取消断点;通过鼠标点击边列中的蓝色断点来启用/禁用当前行断点。
command + Y:全局激活或禁用所有的断点,激活进入调试模式(此时断点蓝色可见)。
边列(Gutter)中的断点/警告可右键呼出Reveal in Breakpoint/Issue Navigator。
trick:编辑断点(Edit Breakpoint):
Condition:设置断点的触发条件,例如“i==3”(注意不能有空格)表示当i等于3时该断点才会被触发。
Ignore:设置断点需要被忽略多少次才会中断,若设置成5则表示第6次遇到该断点时才触发。
Action:设置断点触发时的动作,可以为Debugger Command、Log Message、Shell Command或Sound。
例如可设置以下Debugger Command:
(1)读取std::string sig的内存buffer值:mem read sig.c_str() -c sig.size();
(2)打印NSData实例sig:po sig
(7)Debug
F6:下一步(Step Over),逐过程单步调试,不进入函数体。
(fn+)F7:进入(Step Into)函数体。可能与多媒体键有冲突,故需要fn辅助(建议)。
(fn+)F8:跳出(Step Out)函数体。可能与多媒体键有冲突,例如呼叫iTunes,故需要fn辅助。
control+command+Y:逐断点继续执行(Pause/Continue)。
control+command+C:执行到当前光标所在行(Continue to current line)。
trick:移动指令指针():
断点调试运行时,可以将绿色指针箭头(Line 47)移动到其他行(Line 49)或其他断点(Line 51)实现跳转执行。
(8)Watch
shift+command+M:Debug Workflow-&View Memory。
Debug Workflow-&Show&Disassembly When Debugging,可进行汇编指令级调试。
trick:修改变量内存值():
调试运行时,可以在底部的调试窗口(Debug Area,可通过Shift+Command+Y呼出)右键某个变量,除了可以进行View Memory/View Value As之外,还可以选择Edit Value运行时编辑内存变量的值。
在调试验证某些难以复现的bug或进行边界测试时非常有用,可减少每次修改测量样本值(hardcode)重新编译链接的痛苦。
n/next:step over;s/step:step into;finish:step out;c/continue:goto next breakpoint;expr/expression:Evaluate
a C/ObjC/C++ expression(动态执行C/ObjC/C++表达式);p/print/expr/expression:print
as a&C/C++ basic variable;
// 打印SYSTEM_VERSION(可能要加UIDevice*转换)
(lldb)p&[[[UIDevicecurrentDevice]&systemVersion]
doubleValue]
po/expr -O/expression
-O:Print as an Objective-C object;
// 打印屏幕bounds(可能要加UIScreen*转换)
(lldb)po&NSStringFromCGRect([[UIScreen&mainScreen]
// 打印状态栏frame(可能要加UIApplication*转换)
(lldb)po&NSStringFromCGRect([UIApplication&sharedApplication].statusBarFrame)
打印当前keyWindow的根视图(可能要加UIViewController*转换)
[[[UIApplication sharedApplication] keyWindow] rootViewController]
call:调用。其实上述p/po后接表达式(expression)也有调用的功能,一般只在不需要显式输出,或是无返回值时使用call,用于动态调试插入调用代码。
例如可以在viewDidLoad:里面设置断点,然后在程序中断的时候输入以下命令:
// 调用后,继续运行程序,view的背景色将变成红色
(lldb)&call&[self.view&setBackgroundColor:[UIColor&redColor]]
bt(backtrace),打印当前调用堆栈(crash堆栈),“bt&all”可打印所有thread的堆栈(相当于command+6的Debug
Session Navigation)。image:可用于寻址,有多个组合命令,比较实用的一种用法是寻找栈地址对应的代码(行)位置。
例如某个UITableView总共有2个section,当其引用的currentSection.index≥2时将会引起[UITableView rectForHeaderInSection:]调用异常,可使用expr动态改值制造crash场景模拟调试。
此时crash时的控制台bt显示异常出现在应用层代码“<span style="color:#ccd055b8&-&[FACategoryTableView
FACategorySectionHeaderDidTouched:] &#43; <span style="color:#ff”处(其中0x00d055b8为当前栈(代码段)偏移量,744为偏移量——PC指针相对函数入口的偏移)。
那么具体是FACategoryTableView.m文件哪一行代码调用引起的异常呢?此时通过“image lookup --address”后接bt的call stack中的代码段偏移地址(<span style="color:#ffd055b8)即可定位出异常调用的代码行位置。
memory read &cmd-options& &address-expression& [&address-expression&]
Command Options Usage:
size指定内存块(block/chunk)的大小
& & --size &byte-size& ):The size in bytes to use when displaying with the selected format.
count指定内存块(block/item)的个数,可配合起始地址使用。
& & -c &count& ( --count &count& ):The number of total items to display.
format指定内容显示&#26684;式,&#26684;式符同print:c-char,s-string,d-decimal,x-hex。
& & -f &format& ( --format &format& ):Specify a format to be used for display.
Command Samples:
(a)起止地址,以下基于起始地址偏移量指定截至地址。
(lldb)mem read 0x10b88f0c 0x10b88f0c&#43;9
0x10b88f0c: 39 38 37 36 35 34 33 32 31 & & & & & & & & & & &
(b)可在起始地址后使用-c指定需要dump的字节数,以上等效:
(lldb)mem read 0x10b88f0c -c 9
0x10b88f0c: 39 38 37 36 35 34 33 32 31 & & & & & & & & & & &
(c)起始地址&#43;内存块size&#43;内存块count(dump hex format)
(lldb)memory read -s 1 -f x -c 9 0x10b88f0c
0x10b88f0c: 0x39 0x38 0x37 0x36 0x35 0x34 0x33 0x32
0x10b88f14: 0x31
说明:dump的memory chunk为1byte,以上总共dump了chunk size*chunk count=9byte。
(d)起始地址&#43;内存块size&#43;内存块count(dump char format)
(lldb)memory read -s 1 -f c -c 9 0x10b88f0c
0x10b88f0c:
(e)起始地址&#43;内存块size&#43;内存块count(dump string format)
(lldb)mem read 0x10b5cf2c -f s -c 1
0x10b88f0c: &&
(f)起始地址&#43;内存块size&#43;内存块count(dump int format)
(lldb)memory read -s 4 -f x -c 3 0x10b88f0c
0x10b88f0c: 0xxx109f0031
说明:以上指定chunk尺寸为4byte(-s &4),chunk数量为3,共dump了12个byte。
memory&write:改写指定地址的内存(Write to the memory of the process being debugged)。可自行help mem write查看帮助:
Syntax: memory write &cmd-options& &address& &value& [&value& [...]]
trick:lldb打印无效问题
在使用LLDB调试命令p/po打印C类型(包括复合类型)或Objective-C对象时,可能会遇到属性不存在或类型不匹配的问题。
例1——断点调试,打印当前UIViewController的frame:
由于Xcode lldb本身的bug,对属性的点引用有时会无法识别,例如执行(lldb)&p self.view.frame报错:property 'frame'
not found on object of type 'UIView *'将对属性的点引用改为对属性的getter调用,执行(lldb)&p [self.view frame]依旧报错:no known method '-frame';
cast the message send to the method's return type由于Xcode lldb本身的bug,对返回的复合类型也无法直接识别,此时可采用显示类型转换,执行(lldb)&p (CGRect)[self.view
frame]不会报错!
例2——断点调试,打印当前UIViewController的navigationController堆栈和childViewControllers数组:
点引用报错写法(property not found):(lldb)&po self.navigationController.viewControllers
调用getter正确打印:(lldb)&po [[self navigationController] viewControllers]
点引用报错写法(property not found):(lldb)&po self.childViewControllers
调用getter正确打印:(lldb)&po [self childViewControllers]
(10)启用调试EXC_BAD_ACCESS
当你对已释放的对象发送消息(90%的可能是对引用计数为0的对象再release)或release那些autorelease对象时,就会出现报EXC_BAD_ACCESS这样的错误。
默认设置下 Xcode不会给你定位具体是哪一行代码不该去使用已释放的对象,或者release用错了。
Product -& Edit Scheme(option&#43;command&#43;R) -& Diagnostics ,勾选“Objective-C”之后的“Enable Zombie
Objects”。
设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie;设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不只是报EXC_BAD_ACCESS Crash,还会放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失, 因此我们可以找到具体或者大概是哪个对象被错误的释放或引用了。
注意:NSZombieEnabled只能在调试的时候使用,千万不要忘记在产品发布的时候去掉,因为NSZombieEnabled不会真正去释放dealloc对象的内存,一直开启后果自负!
《》《》《》《》
《》《》《》
《》《》《》《》
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

我要回帖

更多关于 烧饼修改器官网 的文章

 

随机推荐