⑴ vpp源碼分析(2) - 入口函數
我們使用: cmake3 --build /mnt/vdb1/vpp/build-root/build-vpp_debug-native/vpp
編譯了 vpp
在次之前執行了 make install-ext-deps ,DPDK各種庫文件已經安裝,模塊已經安裝到了內核,
現在我們要分析一下入口函數。
進入目錄:/mnt/vdb1/vpp/build-root/build-vpp_debug-native/vpp
nm -al bin/vpp 生成符號表,帶源文件地址。
objmp -j .text -Sl bin/vpp --prefix-addresses > debug.info 反匯編,匯編和C語言混合。
上面生成以備後用。
調試使用cgdb.
[root@devel-ng-exporter-225 vpp]# pwd
/mnt/vdb1/vpp/build-root/build-vpp_debug-native/vpp
[root@devel-ng-exporter-225 vpp]# cgdb bin/vpp
/usr/bin/vpp -c /etc/vpp/startup.conf
我們先看一下用戶態程序的參數傳遞規則:
上面程序很精簡,並不復雜得到下面的結果:
設置main程序親和性,main_core默認為1,可在文件中配置。
關於/etc/vpp/startup.conf中參數和使用配置參考: https://fdio-vpp.readthedocs.io/en/latest/gettingstarted/users/configuring/startup.html
設置main程序的親和性:
272│ /* Set up the plugin message ID allocator right now... */
273├> vl_msg_api_set_first_available_msg_id (VL_MSG_FIRST_AVAILABLE);
上面完成: