[英]How do I call function(void) in gdb
我是一個完整的初學者反向 engg。 最近我一直在瀏覽 gdb 以及如何調試程序。
我有一個很大的疑問,如果它是一個簡單的
#include <stdio.h>
#include <stdlib.h>
int flag(void){
puts("okay you got this");
}
int main(void){
puts("nope try again");
}
所以我成功地編譯了這個程序,當我嘗試運行這個程序時,它給了我主函數輸出
nope try again
所以現在我如何調用標志函數以在 gdb 中給出“好的,你得到了這個”輸出我盡了我最大的努力並瀏覽了博客來獲得答案,但我最終失敗了希望我能得到解決方案並請告訴我是什么我錯過了我需要知道的關於它是如何工作的
您的意思是如何調用flag()
並跳過main
的puts
?,在這種情況下:
(gdb) break main
(gdb) run
(gdb) print flag()
okay you got this
(gdb) break 10
(gdb) jump 10
(gdb) quit
函數flag
未被調用,並且很有可能它不會因為不需要而出現在可執行文件中
這叫做死代碼消除
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.