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. 函數範圍內的變量變量
- 9. 在C++中給定的相同範圍內聲明相同的變量名稱
- 10. 如何在內聯函數中聲明一個靜態變量?
- 11. 如何在Scheme函數內聲明一個變量?
- 12. gdb:打印一個不在當前範圍內的變量
- 13. 函數聲明範圍
- 14. 變量不是在這個範圍內聲明
- 15. 「變量」是不會在這個範圍內聲明[C]
- 16. 用...聲明int變量...範圍
- 17. 定義的函數,在一個聲明中聲明一個變量
- 18. 如何從函數內部聲明一個全局變量?
- 19. 如何在範圍內聲明?
- 20. 這個私有變量是如何「未在此範圍內聲明的」?
- 21. 範圍JavaScript變量的聲明爲inline
- 22. 在全局範圍內聲明一個圖像變量沒有得到分配,但在函數內
- 23. 聲明一個範圍
- 24. 使用變量內部的函數聲明一個值
- 25. 變量在此範圍內沒有聲明 - MinGW的W64
- 26. 將變量傳遞給函數範圍
- 27. 函數內部變量的範圍
- 28. Ajax函數內的Javascript變量範圍
- 29. 函數內nodejs中的變量範圍
- 30. Javascript變量聲明和範圍
它會做什麼好?代碼不會意識到它的存在。 – 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