我有我在Android Studio中使用Gradle構建的本機代碼。大多數調試似乎在C++中工作正常,但我只是添加了一個新類,當我嘗試進入函數調用時,它將我帶到一個完全不相關的代碼區域中的絕對奇怪的位置。使用本機代碼導致Android Studio中出現垃圾
例如,我有下面的代碼符合斷點:
SemVer ver_cl = PlatformHelper::getAppVersion();
我跑「工序在」,我在gnu-libstdc++
實施hashtable.h的結束在一個看似任意的代碼行。
我在模擬器中運行。我已經確定將我的項目同步到Gradle文件,但我不確定可能會導致這種行爲。
我不相信這是怎麼回事。函數體實際上不包含任何內容 - 只是一行說:'int n = 0;'所以我可以看到它是否落在它的內部。這就是說,我現在正在意識到我現在實際上並沒有返回一個SemVer結構體,並且出於某種原因,編譯器並沒有抱怨這種情況?!看起來很奇怪...... – aardvarkk
編譯器確實沒有抱怨沒有從函數返回值。在這種情況下,當你從函數返回時,你的堆棧被破壞,事情可能會變得很奇怪。 –
哦,人 - 這完全就是我沒有從函數中返回有效值。我習慣這是一個編譯器錯誤 - 我沒有想到那種隨機行爲。我會贊成答案。如果你想編輯你的答案,以便它與「實際」解決方案相關,我也會將其標記爲答案。謝謝你的幫助! – aardvarkk