lnxdbg - LENIX的调试器

0. 简介

开发程序自然少不了调试器,所以,具备条件后,开发一个LENIX下的调试器就很重要了。也因为自己需要用调试器,好吧,那就开发一个调试器,自己就是第一个用户。

但是,这是一个很初级的系统,还没办法开发出和windows那样功能强大的调试器,只能弄一个简单的凑合着用,然后慢慢升级。

1. 功能

功能比较简单,参考了DOS的debug程序,以及CPU的调试功能,现在完成了设置断点、运行到指定位置、单步执行、显示寄存器内容、显示内存内容,有这几个功能,应该能满足基本的需求了。

lnxdbg采用命令行的方式进行调试,在CUI的条件下,貌似也只能用命令行的方式了。
运行调试器
在命令提示符处输入lnxdbg,意思是lenix debugger,运行后,是这个样子的。
在这里插入图片描述

1.1 退出调试器 quit

执行结果是
在这里插入图片描述

1.2 装载文件 debug

用法是: debug filename

装载成功后,会显示执行入口的地址,算是给出一个提示
在这里插入图片描述

1.3 停止调试 stop

在调试命令提示符输入stop,就会停止当前调试,关闭被调试文件,reg、trace、go这些命令都会失效。
在这里插入图片描述

1.4 显示寄存器内容 reg

在命令提示符下输入reg,如果装载了调试文件,就会显示寄存器内容,比如,这里装载了hello.exe,但是并没有开始调试,显示出的寄存器内容程序运行前的初始状态
在这里插入图片描述

1.5 显示内存 mem

mem命令用来显示内存数据,这个不用装载被调试程序也能用,

命令格式: mem 内存地址

注意一点,地址需要用16进制的格式。对于不能显示的字符,lnxdbg都用‘.'来代替了
在这里插入图片描述

1.6 单步执行 trace

单步执行命令

命令格式 trace 或者 t

这个命令可以让程序一条指令一条的执行,没执行一条指令就显示寄存器内容,用来跟踪程序执行情况。
在这里插入图片描述

1.7 运行 go

go用于连续执行,

命令格式是 go 或者 go 暂停地址
也可以是 g 或者 g 暂停地址

如果没有提供暂停地址,程序就会运行到结束,然后返回到调试程序。
在这里插入图片描述

1.8 设置断点 sbp

sbp 是set break-point的缩写

具体用法是 sbp 断点地址 【断点类型】【断点长度】

如果只用 sbp 断点地址,就默认是执行断点
在这里插入图片描述

1.9 帮助 help

主要用于显示可以使用的调试命令,毕竟有时候自己都会发忽然短路,不记得自己设计的命令了在这里插入图片描述

2. 需要增加的功能

需要增加的功能很多,我当然想把lnxdbg做成和VS的调试器那样了,有没有这个技术能力先不说,就是时间这条就没办法了。所以就只能一点一点升级了。

2.1 反汇编

其实这个功能很重要,毕竟要看程序执行到什么位置以及是什么指令,如果不能直接反汇编看指令,就要看编译器生成的汇编文件,那就飞虫啰嗦了。

2.2 直接编辑汇编代码

在调试的时候,特别是在做测试的时候,有时候仅仅需要临时看几条指令的执行情况,犯不着单独写个程序,

资源下载链接为: https://pan.quark.cn/s/5c50e6120579 在Android移动应用开发中,定位功能扮演着极为关键的角色,尤其是在提供导航、本地搜索等服务时,它能够帮助应用获取用户的位置信息。以“baiduGPS.rar”为例,这是一个基于百度地图API实现定位功能的示例项目,旨在展示如何在Android应用中集成百度地图的GPS定位服务。以下是对该技术的详细阐述。 百度地图API简介 百度地图API是由百度提供的一系列开放接口,开发者可以利用这些接口将百度地图的功能集成到自己的应用中,涵盖地图展示、定位、路径规划等多个方面。借助它,开发者能够开发出满足不同业务需求的定制化地图应用。 Android定位方式 Android系统支持多种定位方式,包括GPS(全球定位系统)和网络定位(通过Wi-Fi及移动网络)。开发者可以根据应用的具体需求选择合适的定位方法。在本示例中,主要采用GPS实现高精度定位。 权限声明 在Android应用中使用定位功能前,必须在Manifest.xml文件中声明相关权限。例如,添加<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />,以获取用户的精确位置信息。 百度地图SDK初始化 集成百度地图API时,需要在应用启动时初始化地图SDK。通常在Application类或Activity的onCreate()方法中调用BMapManager.init(),并设置回调监听器以处理初始化结果。 MapView的创建 在布局文件中添加MapView组件,它是地图显示的基础。通过设置其属性(如mapType、zoomLevel等),可以控制地图的显示效果。 定位服务的管理 使用百度地图API的LocationClient类来管理定位服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值