一直在想这个macos可以windows一样使用windbg通过串口,1394和usb进行调试,这样就方便多了。看到资料, MacOs是可以使用以太网卡来调试的:

1. 先去developer.apple.com下载对应版本的KDK

2.安装KDK,文档和调试符号在/Library/Developer/KDKs/KDK_10.14.1_18B75.kdk/下.

3.安装的目录下有一个readme.html,里面详细说明了如何进行双机调试.

4. Host机器先执行: lldb /Library/Developer/KDKs/KDK_10.14.1_18B75.kdk/System/Library/Kernels/kernel

5.然后执行 kdp-remote host,        host 就是你的目标机器的IP.

6. 如果连接不上,可以arp -a -n -i en0 这样可看arp, 因为这个时候,目标机器是不会处理相关的arp的who is arp包的,有时候你需要sudo arp -s 192.168.1. 5 1b:1b:1d:15:14:18 这样绑定ip和MAC地址.

7. 小提示,你可以在debug=0x146的情况下,使用ctrl+option+command+shift+escape, 随时把系统挂起, 然后使用kdp-remote连接上进行调试.

看起来这个不复杂,但是我一开始并没有成功,查了一下网上也没有什么人说可以成功进行双真机调试,但大部分只是调试了vmware安装的Mac,而非真机。

经过对比发现,原来这个能不能成功调试是取决了你的网卡的型号的,这个需要网卡驱动去实现IOKDP和IOKernelDebugger,同时实现kdp debug时通信的receivePacket和sendPacket这两个方法,只有少数几种以太网卡可以进行调试,如vmware模拟的Intel82574L, Yukon 的网卡, NVEthernet这几个,具体可以查nvenet.kext , Intel82574L.kext和  AppleYukon2.kext这三个kext的Info.plist的硬件id, 只有这三个驱动实现了内核debugger的相关功能。

手上的机器只一个macbookpro, 没有以太网卡,然后两台黑苹果是intel的 I218和I219网卡,第三方的驱动也没有实现这些功能。

本来是想直接淘宝买一个的,但是驱动是开源的,通过反汇编研究了上面那个驱动的相关功能实现,感觉实现只需要重载4个方法就可以了, 然后在驱动start的时候把IOKernelDebuger这个设备对象初始化好就可以了。

 virtual IOReturn enable(IOKernelDebugger * debugger);virtual IOReturn disable(IOKernelDebugger * debugger);virtual void receivePacket(void * pkt, UInt32 * pktSize, UInt32 timeout);virtual void sendPacket(void * pkt, UInt32 pktSize);

学习了一下,终于搞定,并成功实现了双真机调试.

看了一下,我是这个世界第一个使用黑苹果非免驱的网卡实现MacOs真双机调试的人.

这个大大方便了的一些内核级的补丁制作和原理的研究工作, 对于MacOS驱动和内核开发者来说也是很大的提高了效率.

这个还是现学现写,驱动是基本上大部分时候可以工作的,也支持debugger停过之后(要不久),相关的网络通信还可以继续. 但是还是有一些bug, 欢迎有经验和有兴趣的开发者加入开发,可以私信我加入协作中。

1. 有时候kdp remote会连接不上, 原因未明,kdp-poll是在工作的但是一直收不到包。

2.有时候debug的过程中会出现kdp通信突然出错,并且无法恢复。

相关的驱动代码已经提交到了github,  请点个赞,如果这个帮上忙了。 https://github.com/aerror2/IntelMausiEthernetWithKernelDebugger

MacOs 双真机内核/驱动调试相关推荐

  1. VMware+Windgb+Win7内核驱动调试

    -------------------------------------------------------------- VMware+Windgb+Win7内核驱动调试 ------------ ...

  2. VMware调试.【转】VMware+Windgb+Win7 内核驱动调试

    ZC:我遇到的问题:com_1 怎么都不成功,记起来 貌似原来也遇到过这个问题,看了一下 VMware里面创建的是 "串行端口 2",于是 将 "com_1"改 ...

  3. Linux内核驱动调试,Linux内核设备驱动之内核的调试技术笔记整理

    /****************** * 内核的调试技术 ******************/ (1)内核源代码中的一些与调试相关的配置选项 内核的配置选项中包含了一些与内核调试相关的选项,都集中 ...

  4. Eclipse中使用真机进行USB调试android程序

    在android小程序的开发过程中,使用eclipse中的虚拟机进行程序开发速度较慢,用真机开发可以显著提高调试的速度. 这里我用的操作系统是win7专业版,手机型号华为G520: 进行USB调试的主 ...

  5. Xcode7 真机免证书调试Cocos2D游戏

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 经过一番实验,如今最终能够在Xcode7上免证书真机调试了: ...

  6. 错误记录:自己创建activity时不能进行真机usb安装调试

    1.状况 新建工程师不创建activity,自己新建activity.使用真机调试时不能安装app到手机. 2.问题 a.直接不能点击调试按钮,解决办法:错误记录:error running app ...

  7. Xcode真机设备无线调试

    打开Xcode菜单:Windows->Device and Simulators.找到连接的硬件设备,Connect via network选项打勾. 然后断开数据线,设备仍热连接着 在Xcod ...

  8. appium android函数,appium连接Android真机,并调试

    Android真机:华为pad2 Android和Windows连接同一个局域网 连接USB Android机设置: 打开USB调试 cmd>adb devices,显示Android序列号 , ...

  9. uni-app真机预览调试:关于ios系统真机调试的操作步骤

    介绍: 因手机差异较大,HBuilder并没有提供App的模拟器.不管uni-app或5+App/wap2app项目,都需要连接真实的手机或手机模拟器来运行测试,称之为"真机运行" ...

最新文章

  1. 【报告解读】126个国家、29个行业、36位高管认为AI的未来这么走
  2. ArcGIS注册SDE库数据源
  3. 【C语言】控制台窗口图形界面编程(四):文本输出
  4. BZOJ1050 [HAOI2006]旅行
  5. php 渐变色,段落每行渐变色文本效果
  6. 安卓 多条通知_安卓11第一版发布:原生滚动截屏、屏幕录像、抄国内ROM这么多...
  7. python中的counter函数_Python的 counter内置函数,统计文本中的单词数量
  8. Js获取处理日期时间
  9. Windows 7 Sp1 x64 安装英文语言包
  10. MWC - 飞控套件CRIUS MWC MultiWii SE v2.6组装
  11. 我爱淘冲刺阶段站立会议2每天任务3
  12. 水平放滑轮组计算机械效率,初中物理中考常用公式-总结-2
  13. 如何使用“MRT”恶意软件删除工具
  14. Python爬虫贴吧内容
  15. 『小众摄影』01 期 :网红重庆•千年古镇磁器口
  16. 如何快速学习数控编程?
  17. linux 命令 dsm,群晖常用指令 - osc_sa9nsts3的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. 掌柜星新零售解决方案为母婴亲子行业商家助力
  19. 算法笔记-问题 A: 【字符串】最长回文子串
  20. Java常用的Linux命令

热门文章

  1. CFF 201903-1小中大(java)
  2. docke 安装rap_Docker搭建RAP2
  3. 智慧港口解决方案-最新全套文件
  4. 【硬刚大数据】大数据同步工具之FlinkCDC/Canal/Debezium对比
  5. 90页PPT | 金融大数据平台总体架构方案(附下载)
  6. Google对simhash的用法论文读书笔记
  7. app上传AppStore被拒绝的各种原因
  8. 单片机接usb设备不用计算机,如何利用usb转串口实现单片机和电脑的通信-与非网...
  9. iviewui table序号每页只是显示1-10
  10. 第五章-离散时间LTI系统