西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

VS開發(fā)Linux程序(VisualGDB)

4.2r4 特別版
  • VS開發(fā)Linux程序(VisualGDB)4.2r4 特別版
  • 軟件大小:5.3M
  • 更新時間:2015-08-26 15:40
  • 軟件語言:英文
  • 軟件廠商:
  • 軟件類別:國外軟件 / 特別軟件 / 編程輔助
  • 軟件等級:4級
  • 應用平臺:WinAll, Win7
  • 官方網站:http://visualgdb.com/
  • 應用備案:
好評:50%
壞評:50%

軟件介紹

VisualGDB是在vs上開發(fā)Linux程序的工具,利用visual studio強大的功能調試Linux程序真的是很愜意的一件事情。VisualGDB支持Linux的原理是,通過ssh連接到Linux系統(tǒng)上通過ssh給linux下達命令,既然需要Linux系統(tǒng),而VS又是Windows系統(tǒng),那么就需要一臺虛擬機。對于習慣了Windows下的開發(fā),覺得Linux下的純命令行開發(fā)調試,還是有些不習慣,效率有些低。那么能不能用VS來開發(fā)調試Linux程序呢,經過各種查找,找到了VisualGDB這個神奇的插件,通過VS+VisualGDB就可以編譯調試Linux程序。

將Crack下的VisualGDB.exe覆蓋安裝目錄下的文件,安裝路徑默認為C:\Program Files\Sysprogs\VisualGDB!

類似的工具還有VisualKernel 1.1r2 特別版版,Visual EmbedLinux Tools 0.1.6 官網最新版。

VisualGDB調試

1. 下載并安裝VisualGDB, 安裝完成后,在Visual Studio的目錄中可以看到Android選項:

2. 配置VisualGDB, 在Android -> Setup SDK/NDK location

主要配置JDK,SDK,NDK,ANT路徑

3. 設置要調試的apk包。Android -> Debug a Custom APK file

4 設置完成后,在代碼中設置斷點,點擊Debug, 開始調試

5. 等apk安裝完成后,程序會運行到斷點出,就可以開始用Visual Studio調試了

VisualGDB 使用教程

一準備工作

1 準備一臺Linux機器用來編譯程序,我用的是虛擬機安裝的CentOS網絡設置成橋接模式

     (1)安裝并開啟SSH

     (2)安裝 gcc g++ gdb

     (3)關閉防火墻或者開啟允許SSH對外訪問的網絡端口

2下載 VisualGDB 安裝沒什么好說的一路next就好了,然后打開vs2008會需要配置VisualGDB也是一路next就好了

二用vs2008建立一個的linux程序

1 新建工程,然后我們選擇【VisualGDB】的【LinuxProject Wizard】

        

2 選擇【Create a newproject】的【Application】

        

3 建立SSH 鏈接 選擇【Build the projectunder Linux over network】

4選擇【Remotecomputer】的 【create a new SSH】輸入Linux電腦的ip地址以及用戶名密碼

5 接下去 next就好了 一個Linux工程就建好了

三創(chuàng)建和使用的靜態(tài)庫

1在剛剛的解決方案中新建工程

2 在新建項目時我們選擇【Static library】

3 一路next,我就建好了一個靜態(tài)庫文件

4 引用靜態(tài)庫,修改上一個建立的工程

#include <iostream>  

#include "../Linux_static/Linux_static.h"  

using namespace std;  

int main(int argc, char *argv[])  

{  

    char sz[] = "Hello, World!\n";  //Hover mouse over "sz" while debugging to see its contents  

    cout << "static library method :" << Linux_staticTest() << endl;  

    cout << sz << endl; //<================= Put a breakpoint here  

    return 0;  

}  

5 建立依賴關系

6 編譯 運行

 

四使用第三方的庫 以boost庫為例

1 在Linux上下載boost 并編譯,將boost頭文件拷貝到/usr/include 生成的so文件拷貝到/usr/lib 或者 /usr/lib64 (否則會編譯能通過但是運行不了)

2  vs2008上新建工程 右鍵選擇【VisualGDBProject Properties】

3 選擇Makefile settings

Include directory 第三方庫的頭文件

Library directory 第三方庫的庫文件

Library directory 所需用庫文件名字(注意:比如需要使用libboost_thread.so 時,只填boost_thread)

4 coding

#include <iostream>  

#include <boost/thread.hpp>  

using namespace std;  

void func(){  

    cout << "this is a thread !" << endl;  

}  

int main(int argc, char *argv[])  

{  

    boost::thread th1(func);  

    th1.join();  

    char sz[] = "Hello, World!\n";  //Hover mouse over "sz" while debugging to see its contents  

    cout << sz << endl; //<================= Put a breakpoint here  

    return 0;  

}

VisualGDB 初體驗:

2.1:創(chuàng)建一個帶有NativeC庫的Android APP。

File -> New -> Project ->VistualGDB -> Android Project Wizard

選擇Create a New App with a simple native library.

則會創(chuàng)建一個VS工程,這個工程包含Java文件和NativeC文件. C文件中包含JNI接口.

可以在C/C++ 程序中添加斷點調試.

2.2: 使用VisualGDB和Net ADB調試程序:

如果Android設備使用USB線和開發(fā)機連接,則使用VisualGDB直接可以調試之。 GDBServer也由VisualGDB從NDK中Push到遠端機器上。 

但Sam在機頂盒項目中,使用網絡ADB而非USB connect ADB. 測試了一下,在adt-bundle-windows-x86_64-xxxx\sdk\platform-tools 目錄下,利用adb 連接遠端設備。

$adb.exe connect 10.0.0.7:5555

然后使用VisualGDB調試,則它會自動找到遠端設備并正常調試。贊一個。

2.3: 創(chuàng)建一個純NativeC 可執(zhí)行文件并調試:

選中Create a command-line Android executable.

其實這個就是常作的Android Native C 可執(zhí)行程序。

可以正常加斷點,Debug。

其它還可以Clone NDK的例子程序,打開Eclipse 工程的程序等都可以正常使用。

VisualGDB 進階:

在實際工作中,工程常是以下幾種情況,

NativeC可執(zhí)行程序依賴于 NativeC 動態(tài)或靜態(tài)庫。

Android App使用JNI調用NativeC的動態(tài)庫,這個動態(tài)庫又依賴于其它NativeC動態(tài)庫。

現(xiàn)就這兩種情況使用VisualGDB調試的情況嘗試一下。

3.1:NativeC可執(zhí)行程序調用NativeC 動態(tài)庫。

以Sam一個工程: V4L2_Utils為例。它由V4L2_Utils.cpp聲成一個動態(tài)庫。最終被Main.cpp所使用。

3.1.1:嘗試一:

創(chuàng)建了一個Native C可執(zhí)行程序,注意,在Automatic Android.mk updating: 中選擇:

The JNI folder contains multiple libraries or conditional stantements. You will have to edit android.mk manually.

也就是說,JNI目錄內的文件,不要自動加入Android.mk中編譯,如果需要,我們手動加入。

1. 修改Application.mk為Sam常用模式。

# Build both ARMv5TE and ARMv7-A machine code.

APP_PLATFORM = android-8

APP_ABI := armeabi-v7a

#APP_ABI := $(ARM_ARCH)

#Sam modify it to release

#APP_OPTIM := release

APP_OPTIM := debug

#APP_OPTIM = $(MY_OPTIM)

APP_CPPFLAGS += -fexceptions

APP_CPPFLAGS += -frtti

#sam modify it from gnustl_static to gnustl_shared

#APP_STL := gnustl_static

#APP_STL := gnustl_shared

APP_STL := gnustl_shared

#APP_CPPFLAGS += -fno-rtti

#

APP_CPPFLAGS += -Dlinux -fsigned-char

APP_CFLAGS += -fsigned-char

2. 把V4L2_utils.cpp, V4L2_Utils.h放到jni目錄中。但不加入到工程中(否則會自動加入編譯)

3. 修改Android.mk

# Generated by VisualGDB

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := TestNDK

LOCAL_ARM_MODE := arm

#VisualGDBAndroid: AutoUpdateSourcesInNextLine

LOCAL_SRC_FILES := TestNDK.cpp

LOCAL_C_INCLUDES :=

LOCAL_STATIC_LIBRARIES :=

LOCAL_SHARED_LIBRARIES :=

LOCAL_LDLIBS :=

LOCAL_CFLAGS :=

LOCAL_CPPFLAGS :=

LOCAL_LDFLAGS := 

COMMON_SRC_FILES := $(LOCAL_SRC_FILES)

LOCAL_STATIC_LIBRARIES := Camera_V4L2

include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_ARM_MODE := arm

LOCAL_MODULE := Camera_V4L2

LOCAL_SRC_FILES := v4l2_util.cpp

LOCAL_CXXFLAGS := -D_GLIBCXX_USE_WCHAR_T -I./

LOCAL_LDLIBS := -llog 

include $(BUILD_SHARED_LIBRARY)

編譯,果然生成libCamera_V4L2.so , 和TestNDK. 但這個辦法顯然不是好辦法。

因為調試時,只能調試主程序:TestNDK.cpp。 而無法調試動態(tài)庫。且debug時,VisualGDB甚至不會自動把動態(tài)庫push到開發(fā)板上。

3.1.2:嘗試二:

建立兩個工程,其中一個工程是Main.cpp生成可執(zhí)行程序。

另一個工程是V4L2_Utils.cpp生成 動態(tài)庫。

利用Vs工程的依賴方法讓第一個工程依賴于第二個。

編譯,一切正常。但可悲的是,visualGDB 還是不會自動把動態(tài)庫push上去。 且它竟然沒法export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./

導致無法調試。

這兩個嘗試其實都是失敗的。難道VisualGDB只適合調試JNI下的NativeC庫?

嘗試三:

干脆把V4L2_Utils.cpp加入工程一。則不再生成動態(tài)庫,直接合并入可執(zhí)行文件中。這樣則可以調試。

但這顯然不是個好辦法。無法滿足真正的項目調試。

軟件截圖

VS開發(fā)Linux程序(VisualGDB) 4.2r4 特別版

其他版本下載

最新評論查看所有(1)條評論 >

第 1 樓 江蘇蘇州蘇州工業(yè)職業(yè)技術學院 網友 客人 發(fā)表于: 2021/4/19 9:16:09
破解文件如何用?

支持( 0 ) 蓋樓(回復)

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(1)條評論 > 字數(shù): 0/500

TOP
軟件下載