Android native崩潰問題分析

最近在做NDK項目的時候,出現了啟動應用就崩潰了,崩潰日志如下:

10:41:04.743  A  Build fingerprint: 'samsung/g0qzcx/g0q:13/TP1A.220624.014/S9060ZCU4CWH1:user/release-keys'
10:41:04.743  A  Revision: '12'
10:41:04.743  A  ABI: 'arm64'
10:41:04.743  A  Processor: '5'
10:41:04.743  A  Timestamp: 2025-05-16 10:41:04.376681759+0800
10:41:04.743  A  Process uptime: 2s
10:41:04.743  A  Cmdline: com.virtual.video.i18n
10:41:04.743  A  pid: 22011, tid: 22112, name: DefaultDispatch  >>> com.virtual.video.i18n <<<
10:41:04.743  A  uid: 11565
10:41:04.743  A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
10:41:04.743  A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
10:41:04.743  A  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000
10:41:04.743  A  Cause: null pointer dereference
10:41:04.743  A      x0  0000000000000000  x1  0000000000000000  x2  00000072024ba590  x3  00000072024ba578
10:41:04.743  A      x4  0000000000000000  x5  8080000000000000  x6  00000072024ba5e1  x7  7f7f7f7f7fffffff
10:41:04.743  A      x8  0000000000000000  x9  0000000000000004  x10 b40000733d478ec8  x11 fffffffffffffffc
10:41:04.743  A      x12 0000000000000004  x13 b4000072dd479cd4  x14 00000000fffffffc  x15 00000071a3bba0d0
10:41:04.743  A      x16 00000071a39ea820  x17 00000075a90049c0  x18 0000007202cc2000  x19 0000000000000000
10:41:04.743  A      x20 00000072024ba4f0  x21 00000072024ba578  x22 00000072024ba750  x23 00000072024ba5e1
10:41:04.743  A      x24 00000072024bd000  x25 00000072024bd000  x26 00000072024ba799  x27 00000072024ba751
10:41:04.743  A      x28 00000072024bd000  x29 00000072024ba4c0
10:41:04.743  A      lr  00000071a39a30a4  sp  00000072024ba4b0  pc  00000075a90049d0  pst 0000000080001000
10:41:04.743  A  backtrace:
10:41:04.743  A        #00 pc 000000000004c9d0  /apex/com.android.runtime/lib64/bionic/libc.so (__strlen_aarch64+16) (BuildId: 54071c506231d1ab2d3653b44eddcea5)
10:41:04.743  A        #01 pc 00000000000990a0  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libc++_shared.so (std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::assign(char const*)+24) (BuildId: fe1b5f695d356c857834778696686059de87f7f8)
10:41:04.743  A        #02 pc 000000000035e0fc  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsComm::CSimpleLog::Init(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)+104) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #03 pc 00000000002981a0  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (QtLog::InitLog(int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)+264) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #04 pc 000000000029877c  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (QtLog::QtTrack_InitLog(int, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)+172) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #05 pc 0000000000296cbc  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsQtTrack::QT_Track(int, char const*, char const*, char const*, char const*, char const*, char*)+680) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #06 pc 0000000000297e60  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsQtTrack::InnerTrack(char const*, char const*, char const*, char const*, char*)+1056) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #07 pc 000000000021f414  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsDrive::QtReport(Json::Value&)+692) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #08 pc 000000000021f9a4  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #09 pc 00000000000047f8  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libWondershareDrive.so (Java_com_wondershare_drive_WondershareDriveApi_nativeInit+108) (BuildId: a75ca5f6e52c9bc7beb5074f928f66ff12b835f9)
10:41:04.743  A        #10 pc 0000000000461d54  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #11 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #12 pc 00000000004c1498  [anon:dalvik-classes18.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes18.dex] (com.wondershare.drive.WondershareDriveApi.init+132)
10:41:04.743  A        #13 pc 000000000020a958  /apex/com.android.art/lib64/libart.so (nterp_helper+5720) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #14 pc 00000000000057f2  [anon:dalvik-classes10.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes10.dex] (com.virtual.video.app.ThirdSdkInitWrapper$initCloudStorage$1.invokeSuspend+254)
10:41:04.743  A        #15 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #16 pc 000000000012d3a6  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith+42)
10:41:04.743  A        #17 pc 000000000020b120  /apex/com.android.art/lib64/libart.so (nterp_helper+7712) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #18 pc 0000000000176398  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.DispatchedTask.run+448)
10:41:04.743  A        #19 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #20 pc 00000000001b04e2  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.internal.LimitedDispatcher$Worker.run+10)
10:41:04.743  A        #21 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #22 pc 00000000001b80a2  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.TaskImpl.run+6)
10:41:04.743  A        #23 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #24 pc 00000000001b716e  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely+2)
10:41:04.743  A        #25 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #26 pc 00000000001b5d4a  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask+34)
10:41:04.743  A        #27 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #28 pc 00000000001b5e78  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker+56)
10:41:04.743  A        #29 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #30 pc 00000000001b5e28  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run+0)
10:41:04.743  A        #31 pc 000000000045836c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #32 pc 00000000004841e4  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #33 pc 0000000000483eb0  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #34 pc 00000000005cc668  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1680) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #35 pc 00000000000bb6e8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 54071c506231d1ab2d3653b44eddcea5)
10:41:04.743  A        #36 pc 0000000000054fdc  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 54071c506231d1ab2d3653b44eddcea5)

關鍵截圖如下:
在這里插入圖片描述
這時候需要借助堆棧翻譯工具和帶符號的so,找到對應堆棧。

工具對應的NDK目錄如下:

ndk\21.4.7075529\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin

通過查看堆棧信息:

在這里插入圖片描述
可以看到發生崩潰的地址,然后使用命令:

aarch64-linux-android-addr2line.exe -e xxx.so -C -f -s 000000000035e0fc(上面標注的地址)

就可以得到結果:

NsComm::CSimpleLog::Init(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)

還可以多看幾個:

aarch64-linux-android-addr2line.exe -e xxx.so -C -f -s 00000000002981a0

得到結果:

QtLog::InitLog(int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)

這樣就比較容易定位的出問題的方法。

如果是在Linux系統上,還可以通過nm命令來查看符號表。

nm -D xxx.so

感謝大家的支持,如有錯誤請指正,如需轉載請標明原文出處!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80115.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Shell的基本操作】

文章目錄 一、實驗目的二、實驗環境三、實驗內容3.1 Shell變量與腳本基礎3.2 定制終端提示符&#xff08;PS1變量&#xff09;3.3 文件查找與類型確認&#xff08;find命令&#xff09;3.4 管道命令實戰&#xff08;用戶登錄統計&#xff09;3.5 交互式備份壓縮腳本 四、總結4.…

快速選擇算法:優化大數據中的 Top-K 問題

在處理海量數據時&#xff0c;經常會遇到這樣的需求&#xff1a;找出數據中最大的前 K 個數&#xff0c;而不必對整個數據集進行排序。這種場景下&#xff0c;快速選擇算法&#xff08;Quickselect&#xff09;就成了一個非常高效的解決方案。本文將通過一個 C 實現的快速選擇算…

AQS 基本思想與源碼分析

充分了解 AbstractQueuedSynchronizer 對于深入理解并發編程是有益處的&#xff0c;它是用來構建鎖或者其他同步組件的基礎框架&#xff0c;我們常用的同步工具類如 CountDownLatch、Semaphore、ThreadPoolExecutor、ReentrantLock 和 ReentrantReadWriteLock 內部都用到了它。…

理解位圖算法:使用 C++ 實現高效數據查重

在處理海量數據時&#xff0c;我們常常需要檢查某個元素是否已經存在于集合中。傳統的方法如哈希表或集合容器雖然有效&#xff0c;但在數據量極大的情況下會占用大量內存。這時&#xff0c;位圖算法 (Bitmap) 就成為了一種非常高效的解決方案。本文將通過分析一段使用位圖算法…

數學復習筆記 12

前言 現在做一下例題和練習題。矩陣的秩和線性相關。另外還要復盤前面高數的部分的內容。奧&#xff0c;之前矩陣的例題和練習題&#xff0c;也沒有做完&#xff0c;行列式的例題和練習題也沒有做完。累加起來了。以后還是得學一個知識點就做一個部分的內容&#xff0c;日拱一…

1-10 目錄樹

在ZIP歸檔文件中&#xff0c;保留著所有壓縮文件和目錄的相對路徑和名稱。當使用WinZIP等GUI軟件打開ZIP歸檔文件時&#xff0c;可以從這些信息中重建目錄的樹狀結構。請編寫程序實現目錄的樹狀結構的重建工作。 輸入格式: 輸入首先給出正整數N&#xff08;≤104&#xff09;…

Python爬蟲實戰:研究 RPC 遠程調用機制,實現逆向解密

1. 引言 在網絡爬蟲技術的實際應用中,目標網站通常采用各種加密手段保護其數據傳輸和業務邏輯。這些加密機制給爬蟲開發帶來了巨大挑戰,傳統的爬蟲技術往往難以應對復雜的加密算法。逆向解密作為一種應對策略,旨在通過分析和破解目標網站的加密機制,獲取原始數據。 然而,…

debugfs:Linux 內核調試的利器

目錄 一、什么是 debugfs&#xff1f;二、debugfs 的配置和啟用方式2.1 內核配置選項2.2 掛載 debugfs2.3 Android 系統中的 debugfs 三、debugfs 的典型應用場景3.1 調試驅動開發3.2 內核子系統調試3.3 性能分析 四、常見 debugfs 子目錄與功能示例4.1 /sys/kernel/debug/trac…

lua 作為嵌入式設備的配置語言

從lua的腳本中獲取數據 lua中棧的索引 3 | -1 2 | -2 1 | -3 可以在lua的解釋器中加入自己自定的一些功能,其實沒啥必要,就是為了可以練習下lua

棋牌室臺球室快速接入美團團購接口

北極星平臺從2024年12月份開始慢慢關閉&#xff0c;現在很多開發者反饋北極星token已經不能刷新了&#xff0c;全部遷移到美團團購綜合平臺。 申請這個平臺要求很高 1、保證金費用要15萬起步 2、平臺必須是二級等保和安全產品 &#xff0c;一個二級等保費用10萬起步 所以很多…

開源輕量級地圖解決方案leaflet

Leaflet 地圖&#xff1a;開源輕量級地圖解決方案 Leaflet 是一個開源的 JavaScript 庫&#xff0c;用于在網頁中嵌入交互式地圖。它以輕量級、靈活性和易用性著稱&#xff0c;適用于需要快速集成地圖功能的項目。以下是關于 Leaflet 的詳細介紹和使用指南。 1. Leaflet 的核心…

一個批量文件Dos2Unix程序(Microsoft Store,開源)1.1.0 編碼檢測和預覽

之前的版本是個意思意思&#xff0c;驗證商店發布的&#xff08;其實是我以前自己用的工具&#xff09;&#xff0c;這次把格式檢查和轉換都做上了&#xff0c;功能應該差不多了&#xff0c;還有一些需要小改進的地方。 因為還沒什么用戶嘛&#xff0c;還是保持全功能免費試用。…

特征提取:如何從不同模態中獲取有效信息?

在多模態學習中&#xff0c;不同模態&#xff08;文本、圖像、語音、視頻、傳感器數據等&#xff09;所攜帶的信息豐富且互補。但不同模態的數據結構、表示空間、時空分布截然不同&#xff0c;因此&#xff0c;如何對各模態進行高效、有效的特征提取&#xff0c;是整個多模態學…

Go語言爬蟲系列教程 實戰項目JS逆向實現CSDN文章導出教程

爬蟲實戰&#xff1a;JS逆向實現CSDN文章導出教程 在這篇教程中&#xff0c;我將帶領大家實現一個實用的爬蟲項目&#xff1a;導出你在CSDN上發布的所有文章。通過分析CSDN的API請求簽名機制&#xff0c;我們將繞過平臺限制&#xff0c;獲取自己的所有文章內容&#xff0c;并以…

交叉熵損失函數,KL散度, Focal loss

交叉熵損失函數&#xff08;Cross-Entropy Loss&#xff09; 交叉熵損失函數&#xff0c;涉及兩個概念&#xff0c;一個是損失函數&#xff0c;一個是交叉熵。 首先&#xff0c;對于損失函數。在機器學習中&#xff0c;損失函數就是用來衡量我們模型的預測結果與真實結果之間…

149.WEB滲透測試-MySQL基礎(四)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a; 易錦網校會員專享課 上一個內容&#xff1a;148.WEB滲透測試-MySQL基礎&#xff08;三&#xff09; 非關系型數據庫&#xff1a; &a…

c/c++中程序內存區域的劃分

c/c程序內存分配的幾個區域&#xff1a; 1.棧區&#xff1a;在執行函數時&#xff0c;函數內局部變量的存儲單元都可以在棧上創建&#xff0c;函數執行結束時這些存儲單元自動被釋放&#xff0c;棧內存分配運算內置于處理器的指令集中&#xff0c;效率很高但是分配的內存容量有…

構建穩定的金字塔模式生態:從自然法則到系統工程

在自然界中&#xff0c;金字塔結構廣泛存在于生態系統之中&#xff0c;表現為營養級能量金字塔、生物量金字塔和數量金字塔等形式。這種結構不僅形象地描述了生態能量流轉的規律&#xff0c;也體現出生態系統中“穩定性”與“層級性”的天然法則。在現代軟件架構、企業組織、平…

Vue 3.0雙向數據綁定實現原理

Vue3 的數據雙向綁定是通過響應式系統來實現的。相比于 Vue2&#xff0c;Vue3 在響應式系統上做了很多改進&#xff0c;主要使用了 Proxy 對象來替代原來的 Object.defineProperty。本文將介紹 Vue3 數據雙向綁定的主要特點和實現方式。 1. 響應式系統 1.1. Proxy對象 Vue3 …

TIP-2021《SRGAT: Single Image Super-Resolution With Graph Attention Network》

推薦深藍學院的《深度神經網絡加速&#xff1a;cuDNN 與 TensorRT》&#xff0c;課程面向就業&#xff0c;細致講解CUDA運算的理論支撐與實踐&#xff0c;學完可以系統化掌握CUDA基礎編程知識以及TensorRT實戰&#xff0c;并且能夠利用GPU開發高性能、高并發的軟件系統&#xf…