什么是Oops?linux之Oops原理及解析
前言
什么是Oops?從語言學的角度說,Oops應該是一個擬聲詞。當出了點小事故,或者做了比較尷尬的事之后,你可以說"Oops",翻譯成中國話就叫做“哎呦”?!鞍ミ?,對不起,對不起,我真不是故意打碎您的杯子的”??矗琌ops就是這個意思。
(資料圖片)
在Linux內核開發中的Oops是什么呢?其實,它和上面的解釋也沒什么本質的差別,只不過說話的主角變成了Linux。當某些比較致命的問題出現時,我們的Linux內核也會抱歉的對我們說:“哎呦(Oops),對不起,我把事情搞砸了”。Linux內核在發生kernel panic時會打印出Oops信息,把目前的寄存器狀態、堆棧內容、以及完整的Call trace都show給我們看,這樣就可以幫助我們定位錯誤。
1. Oops的產生
挑選一位隨機幸運內核,insmod oops.ko產生如下標準打印,產生了一段如下圖打印: Oops 信息包含以下幾部分內容:
一段文本描述信息。 比如類似“Unable to handle kernel NULL pointer dereference at virtual address 00000000”的信息,它說明了發生的是哪類錯誤Oops 信息的序號 比如是第 1 次、第 2 次等。這些信息與下面類似,中括號內的數據表示序號。 Internal error: Oops: 817 [#1] PREEMPT SMP ARM內核中加載的模塊名稱(也可能沒有),以下面字樣開頭 Modules linked in:xxx發生錯誤的 CPU 的序號,對于單處理器的系統,序號為 0 CPU: 1 PID: 1412 Comm: insmod Tainted: P O 4.9.37 #1 下圖是關于Tainted(污染)后面字段具體含義(可以注意到,第3部分加載的模塊后面有些模塊帶有(PO)等字樣,實際上就是和這里是相同的含義),源碼路徑: \kernel\panic.c
/** * print_tainted - return a string to represent the kernel taint state. * * "P" - Proprietary module has been loaded.(沒有模塊MODULE_LICENSE或者帶有insmod認為是與GPL不相容的的MODULE_LICENSE的模塊被認定是專有的) * "F" - Module has been forcibly loaded.(通過“insmod -f”被強制裝載的模塊) * "S" - SMP with CPUs not designed for SMP.(oops發生在SMP內核中,運行于沒有證明安全運行多處理器的硬件。 當前這種情況僅限于幾種不支持SMP的處理器) * "R" - User forced a module unload.(rmmod –f強制卸載) * "M" - System experienced a machine check exception.(機器檢查異常) * "B" - System has hit bad_page.(頁釋放函數發現了一個錯誤的頁引用或者一些非預期的頁標志) * "U" - Userspace-defined naughtiness. * "D" - Kernel has oopsed before.(內核以前已經OOPS過了) * "A" - ACPI table overridden. * "W" - Taint on warning. * "C" - modules from drivers/staging are loaded. * "I" - Working around severe firmware bug. * "O" - Out-of-tree module has been loaded.(樹外模塊加載) * "E" - Unsigned module has been loaded.(未簽名模塊加載) * "L" - A soft lockup has previously occurred.(發生過軟鎖定) * "K" - Kernel has been live patched. * * The string is overwritten by the next call to print_tainted().*/
發生錯誤時 CPU 的各個寄存器值
當前進程的名字及進程 ID Process insmod (pid: 1412, stack limit = 0x9eb8e210) 這并不是說發生錯誤的是這個進程,而是表示發生錯誤時,當前進程是它。錯誤可能發生在內核代碼、驅動程序,也可能就是這個進程的錯誤
棧信息
棧回溯信息,可以從中看出函數調用關系
出錯指令附近的指令的機器碼(出錯指令在小括號里),也有可能沒有 關于錯誤碼,如下為armv7架構定義的FSR(錯誤狀態寄存器,分為DFSR和IFSR,根據不同處理器使用不同的FSR)的錯誤代碼,實際上源碼中,oops的錯誤碼就是通過匯編獲取的寄存器值,如下為手冊中IFSR獲取錯誤碼的方法(DFSR同樣) 如下為DFSR結構(IFSR關于FS碼是相同的) 對于上面0x817的錯誤碼解釋為:寫入內存時報錯,錯誤原因是:Translation fault 也就是頁表轉換出現問題
從上可以大致知道Oops 可以看成是內核級的Segmentation Fault。應用程序如果進行了非法內存訪問或執行了非法指令,會得到Segfault信號,一般的行為是coredump,應用程序也可以自己截獲 Segfault信號,自行處理。如果內核自己犯了這樣的錯誤,則會打出Oops信息,也就是說Oops一般是由于內存原因導致的。
2.源碼分析
2.1 溯源過程C部分
直接通過打印找到產生的對應代碼,oops的打印為__die函數(\arch\arm\kernel\traps.c)。 第265行打印就是oops信息,后邊三個字符串來自三個編譯開關,分別表示允許搶占,支持對稱多處理器,采用ARM指令。 第269行忽略,備注也寫的陷阱和錯誤數在ARM上幾乎沒有意義 第273行,打印加載的模組信息 第274行,打印寄存器信息(CPU號,任務名,污染原因,PC,LR(鏈接寄存器,保存函數返回的地址),SP(棧指針),IP,FP(棧頂指針),R10-R0等寄存器值,CPU的Flags (Flags后邊大寫字母表示相應的位為1,小寫表示為0)【指NZCV這幾個狀態寄存器】) 第275行,打印了當前出錯的進程名,pid值,和堆棧限制,在ARM平臺棧的增長方向是從高地址向低地址,sp指針是當前的棧頂,stack limit打印的是棧的限制,表示最小地址是多少,如果SP比這個值小,那么表示棧溢出了。 第279行之后打印堆棧和函數的調用回溯。 如下為pt_reg的定義 進一步溯源,深入探究oops源碼,調用__die的函數為die(\arch\arm\kernel\traps.c): 第344行:調用oops_begin,在這個地方關閉本CPU中斷,獲取CPUID, 對oops上鎖.如果同一個CPU已經在處理die了,那么就是嵌套die,不需要再獲取鎖了 第347行獲取cpu是不是處于用戶模式,如果不是用戶模式并且report_bug的返回值如果不等于BUG_TRAP_TYPE_NONE打印會變為”Oops - BUG”,如果是這種情況,就比較嚴重,一般會打印如下 第355行:die的最后是調用oops_end,這里邊的操作很多是和oops_begin相對應的,然后調用oops_exit,該函數會打印trace結束標志,調用kmsg_dump(KMSG_DUMP_OOPS)。但是如果oops產生在中斷過程中,oops_end函數會直接產生panic或者如果配置宏CONFIG_PANIC_ON_OOPS_VALUE的值為1(panic_on_oops),則也會直接panic 通常情況由于空指針或者錯誤的虛擬地址導致的oops,函數為:__do_kernel_fault。源碼位于\arch\arm\mm\fault.c 第138行:嘗試進行異常修復,這里有一套很復雜的內存異?;貜吞幚?,不深入,失敗后會繼續向下執行 第152行:執行完前面的die操作后,直接干掉出問題的進程 繼續溯源,可以找到在\arch\arm\mm\fault.c中發現兩個函數都有調用__do_kernel_fault。分別是do_bad_area和do_page_fault,這里先不具體分析其源碼,繼續溯源
調用do_bad_area函數的有如下函數:do_alignment,do_translation_fault,do_sect_fault 調用do_page_fault函數的有:do_translation_fault 而最終匯總成如下該數組 最終由函數do_DataAbort調用
2.2溯源過程匯編部分
以下部分為匯編過程,并且涉及到部分內存申請流程。 當內核申請內存時,虛擬內存映射到實際物理內存,系統自動觸發缺頁中斷,缺頁中斷機制根據所訪問頁面的狀態來分配物理頁面并建立映射關系。觸發缺頁中斷的情況有兩種 , 第一,程序訪問了非法地址(我們主要分析的);第二,訪問的地址是合法的,但是該地址還未分配物理頁框。
當程序訪問的虛擬頁面沒有進行過物理頁面的映射時,會通過發生缺頁中斷來分配和映射物理頁面。發生缺頁中斷時,處理器會跳轉到異常向量表 Data abort 向量中開始執行缺頁中斷的匯編階段,這個階段與處理器架構緊密聯系,例如對于ARMv7-A架構,匯編處理流程為:__vectors_start -> vector_dabt -> __dabt_usr/__dabt_svc -> dabt_helper -> v7_early_abort 如下為中斷向量表,源碼位于:arch\arm\kernel\entry-armv.S
以svc為例,會調用dabt_helper 最后dabt_helper會bl到CPU_DABORT_HANDLER這個函數中,根據使用的架構不同,該函數使用的可能會不相同 如下使用的v7架構,使用函數為v7_early_abort v7_early_abort源碼位于:\arch\arm\mm\abort-ev7.S 這個函數實際上就是實現了從arm中獲取FSR(錯誤狀態寄存器)和FAR(錯誤地址寄存器,也就是要映射的地址),r0=地址,ri=錯誤碼,r2=pt_regs(在對應的__dabt_svc中已經獲取)
2.3 do_DataAbort的函數注冊
從2.1和2.2分別對C部分和匯編部分進行簡單的分析,下面來看一下do_DataAbort是如何識別不同的頁面分配的 如下函數為對fsr_info數組的注冊函數,因為do_DataAbort實際上就是根據fsr_info這個數組進行函數調用的 全局搜索hook_fault_code可以發現如下:實際上也就是對fsr_info數組補齊了段錯誤的函數回調 也就是說,接下來只要對著fsr_info數組這個數組進行分析,就能知道oops的全部產生原因了
2.4 總流程圖
3.oops產生原因分析
如下表,為匯總的frs_info,包括對齊,頁表轉換,頁,段權限 我們繼續對源碼進行分析。如下圖為do_DataAbort函數中對fsr寄存器讀取數據的處理。也就是對fsr寄存器取fs,因為fs分布為fs[3:0]位于bit3:0,fs[4]位于bit10,所以處理后對fsr_info進行直接查表即可 第547行如上分析 第550行執行表中對應函數,只有do_bad會返回1,其余函數皆返回0. 第561行,執行由于do_bad對應的fsr導致的錯誤,arm_notify_die中判斷當前CPU是否處于用戶態,如果不是則執行die
3.1 do_translation_fault
static int __kprobesdo_translation_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs){/* …… */#define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M))/* 如果是用戶空間的地址,用do_page_fault處理 */ if (addr < TASK_SIZE) return do_page_fault(addr, fsr, regs);/* 至此的地址都是內核空間,如果regs顯式為用戶空間。說明兩者沖突,進入bad_area */ if (user_mode(regs)) goto bad_area; /* 中間略過一部分代碼 */ return 0;bad_area: do_bad_area(addr, fsr, regs); return 0;}
如下圖為do_bad_area源碼 第195判斷是否處于用戶模式,如果不是就Oops
3.2 do_page_fault
直接看下圖流程即可,不進行具體分析,總之在處于非用戶模式下缺頁且處理出現錯誤,會執行__do_kernel_fault。題外:do_page_fault完成了真正的物理頁面分配工作,另外棧擴展、mmap的支持等也都在這里。對于物理頁面的分配,會調用到do_anonymous_page->。。。-> __rmqueue,__rmqueue中實現了物理頁面分配的伙伴算法
3.3 do_sect_fault
源碼如下,一旦出錯,直接do_bad_area
3.4 bad_mode
bad_mode(中斷異常)也可以導致die并且最終直接panic,源碼如下 引用流程:xx中斷異常 -> xx_invalid -> common_invalid -> bad_mode
3.5總結
4. Oops的解決思路
1.先看是否由BUG/BUG_ON引起,如果是BUG引起的,則直接看產生條件,這種具體情況具體分析 2.如果不是,則可以根據Oops現場打印進一步分析。我們繼續看在第一章中產生的Oops信息。如下圖。首先直接看到了錯誤原因,空指針引起的,然后看到錯誤碼0x817:即寫內存時,缺頁,映射失敗。接下來直接看PC指針就行了 3.PC is at myoops_test_init +0xc/0x14 確定了出問題的函數位置,然后看一下出錯進程是insmod 也就是說就是在insmod oops.ko驅動時后出的問題。接下來需要對該進程增加調試信息,以供我們能夠找到出錯位置 4.增加 –g編譯選項,見下圖。如果file帶有stripped,說明makefile或者腳本中存在選項,將其暫時屏蔽即可。 5.對于內核增加調試信息,直接搜索debug_info,將其打開即可 6.使用對應工具鏈的gbd定位問題源碼所在位置 查看代碼(默認顯示10行) l/list 例:l *(函數名+偏移) 然后根據定位到的對應源碼上下文繼續查找問題即可 7.使用addr2line定位內核中問題源碼。如下圖為之前出現問題的一串oops打印??梢园l現問題出現在dwc2_queue_transaction。我們直接找到內核對應的符號表,找到該函數對應內核的所在位置 確定其偏移為 0x8054ced8+0xf8=0x8054CFD0 使用命令 xxx(工具鏈)-addr2line -C -f -e vmlinux 8054CFD0,確定到了問題所在行數2805 附addr2line參數說明: (1).-a:在函數名、文件名和行號信息之前,以十六進制形式顯示地址。 (2).-b:指定目標文件的格式為bfdname。 (3).-C:將低級別的符號名解碼為用戶級別的名字。 (4).-e:指定需要轉換地址的可執行文件名,默認文件是a.out。 (5).-f:在顯示文件名、行號信息的同時顯示函數名。 (6).-s:僅顯示每個文件名(the base of each file name)去除目錄名。 (7).-i:如果需要轉換的地址是一個內聯函數,則還將打印返回第一個非內聯函數的信息。 (8).-j:讀取指定section的偏移而不是絕對地址。 (9).-p:使打印更加人性化:每個地址(location)的信息都打印在一行上。 (10).-r:啟用或禁用遞歸量限制。 (11).–help:打印幫助信息。 (12).–version:打印版本號。
進階:反匯編方案,適合高手 使用命令:arm-seev100-linux-gnueabihf-objdump -d oops.ko > test.s 然后直接生擼匯編,從PC可以看出出錯在0xc。此時r3=0,r2=1。Str即將r2中數據給到r3指向的內存即0。而0這個內存地址很明顯是非法的
標簽:
相關推薦:
精彩放送:
- []神開股份:公司2023年第一季度報告擬定于4月29日披露
- []美原油交易策略:全球股市普遍下跌,油價延續跌勢
- []和仁科技:控股股東的股份協議轉讓事項還在推進中,尚未完成,目前通策醫療未向公司派駐管理人員
- []通關后香港三樓市辣招稅款錄得5.56億港元 按月反彈66%
- []天天快報!北京保險產業園投控擬發行7億元中票 用于償還舊債
- []時訊:瀛通通訊:公司將按法律法規要求對項目實施情況進行披露
- []午間主力拋售的50只個股
- []基金最新動向:走訪這10家公司
- []當前速讀:跨行查詢余額要收手續費嗎
- []今日觀點!基金投資入門與技巧
- []全球看熱訊:如何退出相互寶 相互寶怎么退出
- []環球今熱點:全球航空運力有望在5月破億,中國三大航司國內運力已全面復蘇
- []每日訊息!怎么關花唄借唄,有以下兩大點
- []焦點速遞!房貸利率2022新規,分為以下三種利率
- []奉化中學旁邊樓盤_奉化中學一本率
- []世界時訊:新世界:公司目前沒有申請免稅商品經營牌照
- []每日快看:“名下無房”的馬斯克,大舉買地!宏大計劃被曝光
- []熱資訊!湖北文旅集團6億元超短期融資券將兌付 利率2.86%
- []熱文:光環新網:公司將根據自身發展情況,充分利用資本市場的優勢和支持,綜合考量各種因素,適時進行資本運作
- []熱文:湖州長興西峰壩村1宗宅地擬于3月31日出讓 起價7152萬元
- []環球新消息丨股市蒸發的錢去哪兒了,被用戶獲利分走了
- []世界速看:如何開基金賬戶
- []【全球速看料】2021全球gdp排名完整名單,中國位居第二名
- []2020年招商銀行商業貸款利率
- []環球微動態丨白云機場2月旅客吞吐量增逾四成,一線機場免稅商業加速恢復
- []今日熱搜:散戶炒股技巧
- []【天天速看料】重磅!金茂又一封面力作首發!誰將成為下一個價值爆發熱土?
- []天天即時看!包鋼股份:公司2023年經營預算中稀土精礦預算數量為32萬噸(含REO50%),折合氧化物16萬噸
- []今日要聞!多家銀行迎來新任副行長 銀行高管跨行調整動作頻繁
- []環球快報:中國金茂5億元中票將于3月19日兌付 利率3.28%
- []當前熱門:北京住總房地產:同意楊永波、李遠方委任公司董事
- []當前觀點:商旅回暖超預期,國內國際商務出行或將迎來新峰值
- []貸款買車需要什么手續和證件
- []好玩的地下城手游推薦 受歡迎的地下城手游2023
- []世界熱消息:創業板什么時候實施20%
- []世界快資訊:保險怎么上
- []天天視點!a股開交易時間
- []當前訊息:中旅旅行雷海粟:出境差旅及會展等剛性業務增長高于傳統旅游出行
- []車輛泡水保險公司怎么賠
- []全球視點!深圳人才安居集團完成發行10億短期融資券 利率2.60%
- []【全球熱聞】國信期貨早評:美初請失業金人數超預期,金銀震蕩偏強
- []京東集團2022年凈收入破萬億元 京東手機多舉措攜手品牌商家實現高質量增長
- []百大集團:請查閱公司即將于2023年3月18日發布的年報
- []*ST海倫:截至2023年2月20日,公司股東總數為30514戶
- []長和就香港聯合船塢申改劃成大型綜合私人住宅及公共房屋發展
- []世界快資訊:杭州城投10.7億元公司債將于3月20日付息 利率3.40%
- []神州優車被強制執行19億元 法定代表人為陸正耀
- []【BT金融分析師】甲骨文被認為已被時代淘汰,分析師稱不要忽視其超高盈利能力
- []全球觀天下!北京未來科學城集團40億元私募債券項目更新至“已反饋”
- []微頭條丨美麗生態:請關注公司披露的內部控制相關制度、每年的年度內部控制自我評價報告以及內部控制鑒證報告
- []每日觀點:糧食股票排行前十名,糧食龍頭股盤點
- []世界熱議:現在才開始計劃“五一”旅游?晚了
- []環球動態:余額寶上限是多少
- []焦點要聞:關于猩猩的電影有哪些?大猩猩資料介紹?
- []環球熱點評!高圓圓和謝霆鋒演的電影叫什么?講述了什么劇情?
- []時訊:平安普惠是正規公司嗎 平安普惠是不是正規公司
- []閑花野草逢春生是什么歌曲?閑花野草逢春生歌詞介紹?
- []【世界速看料】浪胃仙大胃王是男是女?浪胃仙大胃王資料介紹?
- []環球熱點!基金定投的正確方法和技巧,有以下四點
- []每日消息!現在活期存款利率是多少2022,基準利率是0.35%
- []動態焦點:英魂之刃手游宙斯怎么出裝好?英魂之刃手游宙斯出裝攻略?
- []三山五岳指的是什么?三山五岳資料介紹?
- []全球快消息!各種有機化合物燃燒的現象有哪些?有機物的燃燒現象歸納總結
- []世爵是什么車?世爵品牌資料介紹?
- []lol一共有多少英雄?lol所有英雄資料介紹?
- []環球速遞!大宗交易額翻倍,長租公寓再成資本“香餑餑” | 租住資管
- []熱點在線丨上交所基礎設施公募REITs市值合計604.33億元
- []清明的時候吃什么食物?清明有哪些習俗?
- []艾德曼首創使用引領鎂鋁合金大勢,成高端安全門消費者首選
- []快資訊丨每日互動:公司成長至今,各項業務的開展憑借的都是公司多年來的技術積累和研發驅動
- []環球快消息!科新機電實控人林禎華三兄弟一年多時間里偷摸減持未公告:被出具監管函
- []【世界獨家】佳兆業集團復牌后跌超32% 2021年虧損127.27億元
- []每日看點!標榜股份:2023年2月28日股東人數為7527
- []德爾股份:為保證所有投資者公平地獲取公司的信息,公司在定期報告中會披露對應時點的股東人數
- []觀察:花旗指暫不認為內地CPI低預期是消費走弱的穩固證據
- []環球新消息丨小市值股票是什么意思,小盤股優缺點
- []環球滾動:十一銀行放假嗎能存款嗎
- []2021年中國GDP百強城市排名,上海排第一
- []天天熱訊:美蘭空港:虧損
- []最資訊丨東北證券:混動市場鋒芒初露 自主車企如日方升
- []商務活動疊加旅游出行,北上廣經濟型酒店集體漲價
- []環球最新:無法使用花唄購物解除需要多久
- []抖音“心比天高”:2025年再造一個美團到店酒旅?
- []市井消費,盡顯中國經濟“韌勁”
- []世界微動態丨尿道肉阜嚴重嗎?_女性尿道肉阜會自愈嗎
- []基金最低買多少
- []當前觀點:打工人住不起快捷酒店
- []傳度小滿最快上半年赴港上市 將成為百度AI生態下又一獨立上市公司
- []環球熱消息:穩支柱防風險 房地產“精準拆彈”力度有望加大
- []當前時訊:東方國信:據預測工業界在1-2年內會形成可用的小型化大語言模型,包括開源或商用
- []廣東省福建古田商會鄉賢共聚深圳,敘鄉情謀發展
- []支持團購商品房,補貼200元/平米…駐馬店、大連出招!福建研究調整樓市政策
- []丁祖昱:多地二手房市場回溫,北京、上海走量不漲價
- []3D打印賽道現大動作,未來市場規模有望達到6000億元!這些概念股獲北上資金加倉
- []速讀:從夫妻之爭到股權之爭?創始人前妻深夜出手,千億房企股權競拍后事耐人尋味
- []迎駕貢酒:您的意見已轉達迎駕電商,祝投資順利!
- []三力士:公司相關信息請在中國證監會指定的披露媒體進行查詢
- []環球訊息:富信科技:公司的核心技術為半導體制冷技術,能夠實現局部、精準控溫
- []中信建投:黃金是牛市回頭階段 回調建議增配
- []即時:全球購騎士卡是真是假 全球購騎士卡是不是真的
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨家財務顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內研發費用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發布2021年Q2財報 期內凈利潤達1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內實現營收同比增長17.27億元
- 汽車之家發布2021年第二季度業績 期內新能源汽車品牌收入增長238%
- 中信銀行上半年實現凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創新高 全天成交額達1.29億元
- 上半年生物藥大增45% 關鍵財務指標好轉營收賬款持續下降
- 全球觀速訊丨年超7000億!銀發族成文旅消費大戶,全國政協委員安庭:充分開發“銀發經濟文旅消費時段”
- 每日熱點:社保2022年新政策,有哪些
- 購物津貼是什么,購物津貼使用規則是什么
- 速訊:中泰策略徐馳:如何看待本輪美元指數反彈及演繹?
- 視焦點訊!露營游爆發式回歸:營地帳篷訂滿火線招人,“周末停車場都不夠用”
- 明星基金經理“隱形”重倉股曝光!馮明遠加倉福達股份 劉彥春減持天味食品
- 世界今日報丨養老概念股 養老的概念股一覽
- 中國農業銀行代碼
- 環球通訊!建行網銀轉賬手續費
- 熱訊:養老保險哪種最好 買哪種養老保險比較好
- 世界看點:中國最好的理財平臺是哪一個,十大理財平臺一覽
- 再造萬億商旅市場服務,酒店從數字化改革做起
- 全球播報:三大交易所是哪三個
- 焦點要聞:越南城市vs中國城市_越南城市
- 今日熱聞!健康的用英語怎么說fine_健康的用英語怎么說
- 今日報丨工商銀行轉賬手續費是怎么收的,分以下三種情況
- 焦點日報:盈利和贏利和營利啥區別
- 圣泉申購是什么板塊
- 全球今日訊!核電龍頭股有哪些
- 轉股是什么意思
- 【天天新要聞】股票停牌是好是壞
- 上海綜合保險怎么查詢 有三種方法
- 環球關注:山西省高平市加快推進整市屋頂分布式光伏發電項目
- 農行證書如何更新
- 如何投資理財 怎么投資理財
- 世界微資訊!去杠桿化通俗來講是什么意思
- 焦點資訊:方便面巨頭盈利難
- 焦點速遞!資源控股獲獨立第三方認購1.22億股?代價為1220萬港元
- 觀天下!索菲亞列夫斯基足球俱樂部_關于索菲亞列夫斯基足球俱樂部介紹
- 全球熱門:銅龍頭股票有哪些
- 世界新消息丨官宣!2月新能源汽車廠商銷量排行榜,特斯拉/五菱/埃安進前四
- 2022年一年期貸款利率,基準利率為4.35%
- 什么叫多頭市場
- 【新要聞】三胎概念股龍頭一覽,十大龍頭股票盤點
- 環球微速訊:結算方式有哪幾種,分為以下四種
- 全球今日報丨佳兆業發布2021年報并申請復牌 期內虧損127.27億
- 佳兆業美好預計2022年擁有人應占利潤同比增長超過60%
- 天天觀速訊丨小兒抽搐的急救措施_小兒抽搐
- 支付寶體驗金有什么用 支付寶體驗金的用途是什么
- 【環球報資訊】建設銀行怎么轉賬,有以下八步
- 金融機構編碼在哪查
- 【環球聚看點】怎么投訴農業銀行
- 環球觀察:1元低價股票一覽表2022,十大低價股盤點
- 環球熱門:河南駐馬店推行“交房即交證”,支持團購商品住房
- 兩次流拍后 北京孫河前葦溝地塊第三次入市
- 每日熱門:古鰲科技:3月8日公司高管陳崇軍減持公司股份合計1.8萬股
- 天天熱點!中熔電氣:3月8日公司高管賈鈞凱減持公司股份合計2100股
- 視點!龍湖集團前2月合同銷售額282.4億元
- 每日短訊:眾信旅游:3月8日公司高管馮濱減持公司股份合計30.25萬股
- 焦點播報:新開源:3月8日公司高管王東虎減持公司股份合計80萬股
- 環球播報:寬松的貨幣政策是什么意思
- 世界速讀:日均存款怎么算 按以下方式計算
- 經濟危機的原因,有以下五種原因
- 經濟現象有哪些
- 環球今日報丨首板是什么意思,第一個漲停板
- 【天天快播報】招商蛇口1-2月簽約銷售金額383.1億元 近期新增一個項目
- 世界今熱點:賽特新材:3月8日公司高管汪美蘭減持公司股份合計130.92萬股
- 最新資訊:旭輝與恒基兆業互換石家莊、廣州兩項目公司股權 錄得虧損5.08億
- 朗博科技:3月2日至3月3日公司高管范小友減持公司股份合計6000股
- 瑞浦蘭鈞問頂電池技術迎來突破,或將加速海南新能源汽車普及
- 天天即時:泉陽泉:3月8日公司高管趙志華減持公司股份合計22.2萬股
- 天天亮點!投資公司排名 投資公司的排名
- 工商銀行卡支行怎么查詢,有以下四種方法
- 全球熱議:2022年武漢首套房貸利率,經歷以下三次下調
- 每日資訊:花唄逾期了被暫停使用要多久才能恢復,一般是一周內
- 龍湖集團:2月單月實現總合同銷售金額人民幣174.1億元
- 協定存款利率 協定存款的利率2021
- 每日熱訊!京東集團2022年收入10462億元 歸母凈利潤104億元
- 簡訊:龍湖集團前2月合同銷售金額282.4億元 同比增長116%
- 太古地產2022年實現營收138億港元 旗下多個商場零售額下降
- 規模效益穩步提升 滬市生物醫藥行業高質量發展
- 陽光城連續十二個月內累計新增涉案執行金額2.7億元
- 上海電影兩連板 公司稱無應披露而未披露的重大事項
- 世界速讀:假幣收繳流程,有以下五步
- 國泰航空2022年虧損65.48億港元,將繼續提升運力重建品牌
- 焦點熱訊:微粒貸可靠嗎 微粒貸靠不靠譜啊
- 焦點消息!大學貸款怎么弄,有以下六步
- 天天最資訊丨基金分紅什么時候發放
- 財報金選丨九龍倉集團2022年收入減少19%至180.64億港元
- 微動態丨浙農股份:公司已推出首個農業社會化服務品牌“浙農耘”,并以此為契機推動傳統農業向數字化轉型
- 天天快看:溫氏股份:近些年肉雜雞市場發展較快,國內肉雞市場現已形成黃羽肉雞、白羽肉雞和肉雜雞三足鼎立的態勢
- 當前資訊!財報金選丨越秀房產基金(股份代碼:00405)2022年積極管理到期貸款,有效降低融資成本
- 【環球快播報】盛美上海:尊敬的投資股票解禁后股東是否決定減持主要是基于股東自身發展的規劃
- 熱點!利元亨:公司與寧德時代多年來保持良好的合作關系,公司有激光類設備在寧德時代試樣
- 觀天下!一體化供應鏈持續出海,京東物流2022年全球運營近90個海外倉、保稅倉、直郵倉
- 財報金選·現場丨越秀房托2022年全年收入18.73億元 同比增長4.2%
- 財報金選丨越秀房托公布2022業績,廣州IFC寫字樓和酒店公寓項目表現亮眼
- 財報金選丨越秀房托公布2022年業績,持續推進ESG管理能力
- 全球熱推薦:2021年各銀行房貸利率一覽表,四大行房貸利率一覽
- 全球實時:k線圖中的三條線顏色怎么看
- 單晶硅片周評-優先保供穩價 硅片價格小幅上升(2023.3.9)
- 全球今頭條!北交所股票新股申購規則,有以下四點
- 每日聚焦:個人所得稅app退稅流程,有以下7步
- 環球觀速訊丨2023“晶澳杯”最美分布式光伏項目評選活動,正式啟動!
- 全球時訊:山東富豪姐弟,賣玻尿酸大賺13億
- 每日關注!銀行儲蓄利率2022年利率,各銀行存款利率一覽
- 今日熱文:推動產業融合創新 加快綠色低碳發展“綠色能源管理創贏計劃”第二季圓滿收官
- 熱點!上坤地產前兩月合約銷售6.8億 均價9782元/平米
- 焦點觀察:首次布局曼谷 太古地產2022年營業收入同比減少15%
- 要聞速遞:保利發展9.40億公司債即將付息 利率3.90%