17
A
回答
14
對於C(也可能是C++)代碼,這將是非常困難的,因爲在大多數實現中這樣做會涉及到移動堆棧指針,這將導致函數的退出代碼失敗,因爲它不再匹配大小堆棧框架。同樣,訪問局部變量的函數中的所有代碼都會突然冒着碰到錯誤的位置的風險,這也是不好的。我不這麼認爲,不。
6
這就是我用來打印變量
(gdb) set $path=((ngx_path_t **)ngx_cycle->paths.elts)[2]
(gdb) print *$path
$16 = {
name = {
len = 29,
data = 0x80ed15c "/usr/local/nginx/fastcgi_temp"
},
len = 5,
level = {1, 2, 0},
manager = 0,
loader = 0,
data = 0x0,
conf_file = 0x0,
line = 0
}
12
您可以動態地分配一些空間,並用它來存儲一個新的變量。取決於「當前函數的作用域」的含義,它可能不是你想要的。
但在這裏是如何的樣子,當你有函數func(),它的指針輸出參數:
set $foo = alloc(sizeof(struct funcOutStruct))
func($foo)
p *$foo
free($foo)
相關問題
- 1. 如何在coffeescript的特定範圍中聲明一個變量?
- 2. javascript函數範圍,變量聲明
- 3. 函數內聲明函數的範圍
- 4. 如何在函數範圍內聲明一個對象?
- 5. 變量未在範圍內聲明
- 6. 變量未在此範圍內聲明?
- 7. 「變量」未在此範圍內聲明
- 8. as3聲明一個eventListener - 變量範圍
- 9. 條件變量函數並沒有在此範圍內聲明
- 10. 如何聲明一個數組變量在模塊範圍內是全局的
- 11. 函數「未在此範圍內聲明」
- 12. 函數未在此範圍內聲明
- 13. 聲明變量和範圍
- 14. GDB:觀察給定範圍內的變量
- 15. 函數範圍內的變量變量
- 16. 如何在Scheme函數內聲明一個變量?
- 17. 如何在內聯函數中聲明一個靜態變量?
- 18. 如何在javascript函數內聲明一個PHP變量?
- 19. 在C++中給定的相同範圍內聲明相同的變量名稱
- 20. gdb:打印一個不在當前範圍內的變量
- 21. 函數聲明範圍
- 22. 在全局/函數範圍中聲明變量。堆棧差異?
- 23. 「變量」是不會在這個範圍內聲明[C]
- 24. 變量不是在這個範圍內聲明
- 25. 用...聲明int變量...範圍
- 26. 定義的函數,在一個聲明中聲明一個變量
- 27. 如何從函數內部聲明一個全局變量?
- 28. 如何在範圍內聲明?
- 29. GDB:如何識別gdb中當前函數的特定變量的變量聲明的行號
- 30. 這個私有變量是如何「未在此範圍內聲明的」?
它會做什麼好?代碼不會意識到它的存在。 – 2012-04-23 16:06:48
無論如何,請同意@JamesMcLaughlin清楚:**否**,僅限於檢查。 – 2012-04-23 16:09:46
你確定你不想要一個gdb變量嗎?爲了方便起見,你可以在gdb的上下文中創建變量,比如'set $ foo = ...'和後面的參考'$ foo'。然而,顯然這些變量對於運行的代碼是不可見的。 – FatalError 2012-04-23 16:14:02