一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony系統(tǒng)使用gdb調(diào)試init

電子發(fā)燒友開源社區(qū) ? 來源:未知 ? 2022-12-26 12:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OpenHarmony適配新的開發(fā)板時,啟動流程init大概率會出現(xiàn)問題,其為內(nèi)核直接拉起的第一個用戶態(tài)進程,問題定位手段只能依賴代碼走讀和增加調(diào)試打印,初始化過程中系統(tǒng)崩潰的問題就更難定位了。如果能使用gdb調(diào)試init,會極大的提高定位效率。 本文簡單描述了一下L2二次啟動的系統(tǒng)如何使用gdb調(diào)試init
  1. 首先將gdb打包到系統(tǒng)鏡像中。
Init不正常的情況下,系統(tǒng)無法正常啟動工作,無法使用hdc工具加載gdb工具,所以直接在制做鏡像時,將其打包到系統(tǒng)鏡像bin目錄下。如下圖:985906b2-84d2-11ed-bfe3-dac502259ad0.png ?2. 調(diào)試版本鏡像帶符號,需要修改鏡像配置文件,改大其大小限制。尤其是system.img,編譯失敗時不會提示實際鏡像大小,需要修改到5G以上。987359cc-84d2-11ed-bfe3-dac502259ad0.png ?3.編譯調(diào)試版本,打開版本調(diào)試開關(guān)
./build.sh --product-name=ita260  --gn-args="is_debug=true use_unstripped_as_runtime_outputs=true"
4. 在init掛載好system、vendor等鏡像,并將根目錄切換到system鏡像后,在啟動第二階段init時,切換到shell下,停止init初始化流程,見下圖B處。 988ad886-84d2-11ed-bfe3-dac502259ad0.png注意:A處的CloseStdio()需要注釋掉 考慮用gdb啟動init第二階段,init絕大部分處理流程都在這一階段,從這里開始就可以用gdb調(diào)試了,init第一階段處理相對而言流程簡單一些,代碼走讀和調(diào)試打印基本就能解決問題。 5. 在init主函數(shù)中去掉“不等于進程1就返回的處理”,因為用gdb起init第二階段時,其進程非1。989b04cc-84d2-11ed-bfe3-dac502259ad0.png ?6. init進程中不初始化Paramworkspace,前面pid=1的判斷,在gdb調(diào)試init時條件不成立,所以此處增加判斷init名就直接退出的處理。98b536f8-84d2-11ed-bfe3-dac502259ad0.png ?7. 系統(tǒng)啟動,init初始化第一階段完成后,會停在shell 下,此時使用下述命令啟動init第二階段:gdb --args /bin/init --second-stage為了調(diào)試init的子進程,還需要gdb下述命令set follow-fork-mode child98ca0646-84d2-11ed-bfe3-dac502259ad0.png ?當前gdb調(diào)試init方法不適用L0、L1和一次啟動的L2系統(tǒng)。 本文章針對OpenHarmony系統(tǒng)在調(diào)試init初始化流程時,缺少高效的問題定位手段這一痛點,引入了嵌入式系統(tǒng)開發(fā)的主流調(diào)試工具-gdb。詳細描述了這一方法涉及到的版本編譯、適配點修改以及調(diào)試命令操作等細節(jié)處理,指導開發(fā)者提高定位init問題的效率。需要注意,當前gdb調(diào)試init方法有局限,不適用L0、L1和一次啟動的L2系統(tǒng)。 更多熱點文章閱讀
  • 玩轉(zhuǎn)OpenHarmony PID:教你打造兩輪平衡車
  • 基于SDIO協(xié)議的WiFi模塊實現(xiàn)指南
  • ArkUI框架,更懂程序員的UI信息語法
  • 帶你玩轉(zhuǎn)OpenHarmony AI:基于Seetaface2的人臉識別
  • 帶你玩轉(zhuǎn)OpenHarmony AI:打造智能語音子系統(tǒng)

提示:本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。


原文標題:OpenHarmony系統(tǒng)使用gdb調(diào)試init

文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電子發(fā)燒友
    +關(guān)注

    關(guān)注

    33

    文章

    566

    瀏覽量

    33511
  • 開源社區(qū)
    +關(guān)注

    關(guān)注

    0

    文章

    95

    瀏覽量

    627

原文標題:OpenHarmony系統(tǒng)使用gdb調(diào)試init

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STM32CubeIDE無法啟動正常調(diào)試是哪里出了問題?

    STM32CubeIDE始終正常使用中,昨日系統(tǒng)升級為 macOS Sequoia 版本,啟動調(diào)試出現(xiàn)錯誤提示,重新安裝應(yīng)用程序及 st-stlink-server 驅(qū)動,仍提示同樣錯誤。 目前
    發(fā)表于 03-14 16:30

    為什么會報錯Could not determine GDB version using command: arm-none-eabi-gdb --version?

    我已經(jīng)重啟電腦了,沒用; 重裝軟件沒有,沒有; 將ST_link_server卸載重裝也沒有; 將arm-none-eabi-gdb加入windows 11系統(tǒng)環(huán)境變量,也沒用; 將軟件的GDB
    發(fā)表于 03-12 08:08

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)GPIO基礎(chǔ)知識

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)GPIO基礎(chǔ)知識
    的頭像 發(fā)表于 03-06 11:23 ?615次閱讀
    【北京迅為】iTOP-RK3568<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統(tǒng)</b>南向驅(qū)動開發(fā)GPIO基礎(chǔ)知識

    蜂鳥板上Openharmony系統(tǒng)跑QT程序

    將QT程序放到Openharmony系統(tǒng)上跑,可以運行,但是會被覆蓋掉。(用的網(wǎng)盤里面的install,支持QT組件的版本)。 運行情況是,在終端運行QT程序,可以正常運行出來,但是觸摸屏幕后,會被Openharmony操作界面
    發(fā)表于 02-26 13:04

    Dali通信系統(tǒng)調(diào)試指南

    調(diào)試通信系統(tǒng)是一個復雜的過程,涉及到對系統(tǒng)性能的測試、故障排除和優(yōu)化。以下是一個關(guān)于調(diào)試Dali通信系統(tǒng)的指南,假設(shè)Dali是一個特定的通信
    的頭像 發(fā)表于 01-10 10:47 ?952次閱讀

    嵌入式工程師都在找的【Linux內(nèi)核調(diào)試技術(shù)】建議收藏!

    ,調(diào)試過程中被調(diào)試的內(nèi)核運行在目標機上,GDB調(diào)試器運行在開發(fā)機上。 使用KDB進行Linux內(nèi)核調(diào)試 案例背景 假設(shè)我們正在開發(fā)一個
    發(fā)表于 11-28 15:37

    ti814x-ddr3-init-u-boot

    電子發(fā)燒友網(wǎng)站提供《ti814x-ddr3-init-u-boot.pdf》資料免費下載
    發(fā)表于 10-12 10:38 ?0次下載
    ti814x-ddr3-<b class='flag-5'>init</b>-u-boot

    基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

    1、程序簡介該程序是基于OpenHarmony標準系統(tǒng)編寫的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?861次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用開發(fā):Hello<b class='flag-5'>Openharmony</b>

    【開源鴻蒙】使用QEMU運行OpenHarmony輕量系統(tǒng)

    本文將會介紹如何從源碼安裝QEMU 6.2.0,以及如何使用QEMU運行OpenHarmony輕量系統(tǒng)。通過本文,你將會對QEMU和OpenHarmony輕量系統(tǒng)又一個初步的認知,并對
    的頭像 發(fā)表于 09-14 08:51 ?1338次閱讀
    【開源鴻蒙】使用QEMU運行<b class='flag-5'>OpenHarmony</b>輕量<b class='flag-5'>系統(tǒng)</b>

    [2K300適配OpenharmonyV4.1]根文件系統(tǒng)制作請教

    的文件系統(tǒng)rootfs.img燒錄到2k300上,燒錄失敗。對比2k300開源資料中的Openharmony 文件系統(tǒng),該文件系統(tǒng)為ext4格式,但是2k500編譯出來的為Ubifs
    發(fā)表于 09-11 11:18

    【迅為RK3568開發(fā)板】OpenHarmony學習開發(fā)系列教程(第1期 北向基礎(chǔ)篇一)

    P1P0_先導課1:30 P2P1_OpenHarmony系統(tǒng)概述8:12 P3P2_OpenHarmony功能框架5:38 P4P3_OpenHarmony技術(shù)特性5:10
    發(fā)表于 08-16 15:27

    ESP32-C3使用命令行GDB調(diào)試出現(xiàn)報錯的原因?

    = 0;void led_init(){ gpio_reset_pin(LED); gpio_set_direction(LED, GPIO_MODE_OUTPUT);}void led_blink
    發(fā)表于 08-01 07:47

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)板

    4.1學習之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統(tǒng)的無限魅力吧! 【北京迅為】OpenHarmony學習開發(fā)系列教程(第1期 北向基礎(chǔ)篇一) P0_先導課 P1_OpenHarmony
    發(fā)表于 07-23 10:44

    RISC-V 匯編語言程序的調(diào)試

    ,通過jr t0跳入。 模擬器執(zhí)行與調(diào)試 下面通過編譯為32位的代碼來看一下程序的執(zhí)行過程(由于程序不需要任何操作系統(tǒng)的支持,會容易跑偏,所以要用遠程gdb進行單條指令執(zhí)行,觀察寄存器的執(zhí)行情況
    發(fā)表于 07-19 16:27

    開源鴻蒙 編譯OpenHarmony輕量系統(tǒng)QEMU RISC-V版本

    本文將介紹如何為QEMU RISC-V虛擬平臺構(gòu)建OpenHarmony輕量系統(tǒng)。得益于QEMU的CPU指令集模擬執(zhí)行能力,該方法可以在沒有開發(fā)板的情況下調(diào)試和運行OpenHarmony
    的頭像 發(fā)表于 07-15 10:36 ?1783次閱讀
    開源鴻蒙 編譯<b class='flag-5'>OpenHarmony</b>輕量<b class='flag-5'>系統(tǒng)</b>QEMU RISC-V版本