導航:首頁 > 源碼編譯 > 編譯和調試aspnetcore源碼

編譯和調試aspnetcore源碼

發布時間:2022-04-16 10:02:05

⑴ ASP.NET網站調試與不調試有何區別

調試主要是針對於編程員的,用戶只看最終效果,所以不需調試。
如果你想讓用戶看一個你指向得錯誤頁面就禁用;如果你網站有錯誤而選擇了可以進行調試,那麼當用戶看你網站出錯得時候,如果用戶又安裝類似於VS得東西就會提示用戶是否調試!
很簡單得比如:你打開IE得JS腳本調試,那麼有錯得位置就會彈出框 提示你調試。
具體情況就是這樣得!

另:VS調試是為了查錯斷點跟蹤用得。很好用!

⑵ 怎麼調試安卓framework的源碼

一、修改android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件

並將其作為要使用的SDK的java SDK。如下圖

三、生成導入AS所需配置文件(*.ipr)
編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/

在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh

等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms

這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
刪除掉所有不需要的mole-library項 PS:感謝 @dezng 的建議
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr

四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK

②設置'Moles'的依賴

先將所有依賴刪掉,只留下上圖'1'所指向的兩個(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊上圖中'2'指向的'+'並選擇上圖'3'指向的'Jars or directories'選項,依次將frameworks和external文件夾添加進來.如:

其它版本的代碼在添加frameworks時可能會顯示成:

沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
我們可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.

可以按照上圖中'1'和'2'來添加Android Framework支持.
在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題

⑶ 請教編譯與調試的區別是什麼

不調試直接編譯,省去調試步驟,節約CPU計算資源等。所以說「代價小」。不過一般調試也佔用不了多少資源。

⑷ asp.net core mvc 是不是未包含使用UA 動態選擇displayModel

這個吧,可能有些東西你不太理解造成的。
關於性能提升的問題,net core是否性能提升10倍?答案是還真差不多!為什麼呢?這是因為.net core為了跨平台,編譯的方式使用的是dotnet publish -r 版本,例如發布到windows X64的機器上,使用的命令就應該是dotnet publish -r win-x64這樣的命令進行發布。而運行方式呢,使用的是dotnet run xx.dll,或者直接dotnet xx.dll,它並不依賴於IIS!當然可以在IIS上部署,也就是在配置文件中使用dotnet 其中參數為xx.dll效果是一樣的——但是一旦這樣部署的樣,受制於IIS(多數情況下使用的是IIS10.0),尤其多線程測試時weblimit參數不做更新的話,性能上有影響,即使數據很大也是有影響的。
當然如果你直接使用IIS把源碼丟過去,在配置文件中使用允許編譯的方式的話,這種方式其實與.net framework的效果是一樣的,並沒有任何性能上的優勢——這種情況只是你把net core看作是net framework的一個版本一樣,他自然和其他版本相關不大!所以你不說話你的測試方式自然性能上無法估量。
net core相比之下的優勢其實除了性能上的提高就是跨平台(其實是源碼跨平台),什麼意思呢?.net framework的移植性非常好,生成一個通用的dll(MSIL中間文件),然後該文件由不同機器上的運行環境自行翻譯(JIT功能),一般認為是邊翻譯邊執行,當然為了整體的性能問題,JIT首次編譯的內容(調用的片段才會被翻譯,不調用的不會翻譯)存儲到Native上,下次再調用時不用翻譯過的代碼時,JIT會跳過翻譯,直接使用使用首次翻譯過的片段。所以在以前的時候,有時我們為了性能,玩Native文件,而netcore後邊指定版本的作用,其實就是翻譯成可執行的二進制PE文件,當然他需要指定操作系統的,比如ubuntu等linux發行版上都可以的!想來看看,netcore本身在net framework上進行了重寫,生成的也是針對不同系統的可執行內容,所以性能上肯定有所提升是絕對的。當然,這種方式最適合的方式還是容器方式(docker),所以性能上要比在IIS上提升不少——當然不能是類似.net framework直接源碼的形式,有點類似於.net framework,但是比framework發布的形式還要高些,而性能提升也是基本這兩種形式的對比!

當然,嚴格來說.net core也是試水跨平台的方式,他去掉了.net framework的大多數內容,所以主要的體現就以下三點:
1,跨平台
2,重寫庫,性能上的提高
3,為docker做足准備(也是跨平台的擴展之一)
換句話來說,如果你不是基於以上幾種的考慮,那麼為什麼要選擇net core呢?要知道每種技術都有他適應的場景的,如果你是winform/WPF時,沒有考慮net core的必要性,而且net core也不支持!如果是Azercloud的話,net core小巧,且服務專一,當然可以考慮net core.如果你公司考慮到使用linux發行版以避免高昂的windows費用,還有一堆.net程序員的話,net core肯定是你的選擇優勢——net framework不支持linux系統啊!
所以我認為技術只是適用!也不是用來比較,net framework與net core的定位是相當明顯且不相互沖突,所以只是一種選擇罷了,而不是誰一定比誰牛B!

⑸ ASP.NET 源代碼 怎麼運行調試

安裝visual studio編譯運行
最新版本是 2015

⑹ 網站源代碼如何在線進行調試

開發調試環境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼
由於AS是基於IntelliJ IDEA開發的,所以本文也適用於IntelliJ IDEA
一、修改Android Studio(以下簡稱AS)的內存配置

因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件

並將其作為要使用的SDK的Java SDK。如下圖

三、生成導入AS所需配置文件(*.ipr)
①編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/

在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh

等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms

這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr

如果在導入時AS出現

則建議按照其給定的解決方法來解決(網址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具體內容如下圖:

四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK

②設置'Moles'的依賴

先將所有依賴刪掉,只留下上圖'1'所指向的兩個(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊上圖中'2'指向的'+'並選擇上圖'3'指向的'Jars or directories'選項,依次將frameworks和external文件夾添加進來.如:

其它版本的代碼在添加frameworks時可能會顯示成:

沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
我們可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.

可以按照上圖中'1'和'2'來添加Android Framework支持.

在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。

⑺ 如何編譯和調試android源碼中platform/system/core下的代碼

首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。

⑻ asp.net 編譯問題

很不喜歡你這樣的提問題的思路
你貼這么一堆有什麼用呢?
錯誤很明顯,sql語句錯掉了.你為什麼不把語句相關的代碼拿上來呢?真不知道在想什麼

這個錯誤是格式錯誤, SELECT 和FROM 之間少寫了什麼或者目標列和FROM之間沒有留空格.檢查一下吧

-------------------------

user, password 是 ACCESS 的保留字,資料庫不要這樣建欄位和表名.改掉吧

⑼ asp源碼,.net源碼有什麼區別

說起ASP+的好處,那就很多了。我們這里舉幾個最明顯的。

速度,ASP+是編譯後執行的,也就是說當aspx文件第一次被請求時被編譯,以後的請求就不需要重新編譯了。而ASP是解釋性腳本語言,每次都需要重新編譯,這種原因,其速度就無法和ASP+來比了。不過ASP+的編譯速度也夠慢的,在本地機上調試,第一次執行的速度是很慢的。不過以後就很快了,第一次執行的任務就交給管理員去做吧。我們就去享受以後的高速度吧:)

功能,ASP+的功能是無比強大的,幾乎能做我們在網路能想到的事情,呵呵,舉個簡單的例子,那就是文件的上傳,在ASP的時代,這個問題只能通過組件才行,但是在ASP+中只需要以下的代碼就可以了。下面是一個例子:

< html>
< head>

< script language="C#" runat="server">

void Button1_Click(object Source, EventArgs e) {

if (Text1.Value == "") {
Span1.InnerHtml = "Error: you must enter a file name";
return;
}

if (File1.PostedFile != null) {
try {
File1.PostedFile.SaveAs("c:\\temp\\"+Text1.Value);
Span1.InnerHtml = "File uploaded successfully to c:\\temp\\"+Text1.Value+" on the web server";
}
catch (Exception exc) {
Span1.InnerHtml = "Error saving file c:\\temp\\"+Text1.Value+"
"+ exc.ToString();
}
}
}

< /head>
< body>

HtmlInputFile Sample

< form enctype="multipart/form-data" runat="server">

Select File to Upload:

Save as filename (no path): < input id="Text1" type="text" runat="server">

< span id=Span1 style="font: 8pt verdana;" runat="server" />

< input type=button id="Button1" value="Upload" OnServerClick="Button1_Click" runat="server">

< /form>

< /body>
< /html>

相信大家都能看懂上面的程序,不是太難。看看用ASP+上傳文件就是這么簡單,根本就不需要什麼組件了,呵呵,只可憐飛刀我寫了半天的"aspcnUP上傳組件",一片心血就被M$給搞完了。我們的組件也要下崗了,唉,可悲啊。(飛刀悲情地唱起"風蕭蕭兮,易水寒,壯士一去不復返......")

ASP+能做的事遠不止如此,這里只是舉個小例子,它的更多功能我們以後再去介紹,呵呵。

ASP+還有一大優點就是結構化編程,他的程序語言可以自已任意加,目前支持C#,VB,JavaScript,呵呵,大家是不是對不支持VBScript感到失望 ?!:)這是大勢所趨,大家也不必失望啦,我以後的文章的常式都會用C#去寫,呵呵,如果你鍾情於VB,你也可以看看本站一篇關於VB與C#語法比較的文章,很容易上手的。對於C#,大家可能比較陌生,不過我們看看上面的程序,發現他還是有很多地方是我們容易上手的。我個人認為它是C++與VB與Java的結合體,也可能是M$宣戰Java的第一步,大家用多了就會覺得他好處多:)

寫ASP+程序,你會覺得是在寫VB或者是VC,很多的思想全都來自於VB,VC,可能是MS.NET的原因吧。所以我們寫程序的思維需要改變,要讓你自已感覺這是在寫軟體,不是在寫傳統的asp程序。

至於ASP+還有的一些功能,我們站點以前的文章也介紹了,呵呵,大家查查,我們以後也會通過程序去了解,只可惜,我們服務商的伺服器不能使用asp+,否則我們會更多了解的asp+的特性。

另外一個大家關心的問題就是,裝有NGWS的Windows 2000是否還支持asp,擔心我們有了aspx,就沒有了asp,以前的程序就全玩完了。這個問題大家根本不用擔心,NGWS設計時M$就考慮過,NGWS同樣可以解析asp,文件的擴展名是.asp,那就使用asp的方法解析,如果是.aspx就使用asp+來解析,所以您以前的asp是不會報銷的。哈哈,大家可以放心啦。飛刀的機器上就是這樣的咯。aspx,asp都可以用:)

⑽ 請問編譯,調試和運行分別有什麼區別呢

編譯是把源文件轉化為目標文件,即是把obj文件鏈接成exe文件。
調試則是為了找出在程序中的錯誤。
鏈接成可執行文件.exe,這時才可以運行,運行就是你要的結果。

閱讀全文

與編譯和調試aspnetcore源碼相關的資料

熱點內容
滴滴加密錄像投訴 瀏覽:975
word兼容pdf 瀏覽:641
阿里雲輕量應用伺服器怎麼買 瀏覽:567
斗魚程序員工資待遇 瀏覽:345
不能應用去色調整命令 瀏覽:893
開啟設備加密 瀏覽:79
起亞壓縮機保修 瀏覽:975
單片機國內發展趨勢 瀏覽:771
警戒指標公式源碼 瀏覽:130
python標准庫之網路相關 瀏覽:38
adbjava 瀏覽:408
php工資太低 瀏覽:737
手動建造命令方塊教程 瀏覽:7
英語三個命令 瀏覽:352
axure入門到精通pdf 瀏覽:39
應用軟體怎麼隱藏和加密 瀏覽:383
帶有顯卡的雲伺服器 瀏覽:795
slice切片python 瀏覽:485
建設工程比例折演算法 瀏覽:745
藍線是哪個app上的 瀏覽:551