backtrace

    13熱度

    2回答

    我需要從C++程序中獲取addr2line(從追溯函數調用的文件和行)提供的信息。是否有類似於addr2line的庫調用? 編輯:我正在Linux環境中工作。 我知道我可以直接調用addr2line,我知道我可以在我的程序中使用addr2line的source code(這也是GPL許可的)。但我想調用一個庫函數,如果它存在的話,更清潔。 編輯:我將使用binutils的bfd,就像addr2li

    22熱度

    2回答

    我試圖在C++程序的backtrace中找到確切的調用行。現在我使用這些線(從回溯的手冊頁),以獲得跟蹤: void *bt_buffer[1000]; char **bt_strings; int bt_nptrs = backtrace(bt_buffer, 1000); bt_strings = backtrace_symbols(bt_buffer, bt_n

    23熱度

    1回答

    呼叫跟蹤包含的條目類似: [<deadbeef>] FunctionName+0xAB/0xCD [module_name] [<f00fface>] ? AnotherFunctionName+0x12/0x40 [module_name] [<deaffeed>] ClearFunctionName+0x88/0x88 [module_name] 是什麼的意思「?」在AnotherFu

    0熱度

    1回答

    使用Unwind_Backtrace創建函數對以產生堆棧轉儲(回溯希望)。但是,地址轉儲與我在鏈接器映射文件中看到的地址沒有關聯。我究竟做錯了什麼? 看來地圖文件中的所有地址都是相對的,而堆棧轉儲是絕對的。如果是這樣的話,我在哪裏可以得到基地址。 有人可以指示我走向「Unwind_Backtrace的傻瓜指南」嗎? static void dbg_log(DebugTopic_type topic

    0熱度

    1回答

    我看到了一個很好的方式來從以下文章中獲取符號名稱。 Win32 - Backtrace from C code 但有關獲取的文件名和行號是什麼。我試圖使用SymGetLineFromAddr64,但無法獲得此調試信息。

    10熱度

    2回答

    看着this question和this question我可以看到,要使用backtrace_symbols()工作,必須使用-rdynamic標誌進行編譯。 我已經試過它變成一個測試程序和它的作品,但我正在寫也編譯-static和this page說,當-static傳遞到編譯器/連接backtrace_symbols()不工作的程序。 是否有任何快速解決方法,或者我永遠不會在我的靜態鏈接程序

    1熱度

    1回答

    我要調用的LUA功能debug.traceback()在C++中獲得在C++中引用的信息,所以我加了C++中的功能是這樣的: int luaErrorHandler(lua_State *m_state) { if (!lua_isstring(m_state, 1)) return 1; lua_getfield(m_state, LUA_GLOBALSINDEX

    6熱度

    2回答

    有沒有辦法找到哪一行代碼在Rails開發日誌中生成MySQL語句? 爲了做一些性能優化,我想找到我的應用程序的哪一部分正在創建哪些MySQL查詢。當我看看我的日誌時,發現每個Web請求的查詢都會閃爍,我需要找出它們來自哪裏。 我正在考慮在日誌輸出中添加一些變量,如____FILE____和____LINE____。 這可能嗎?

    1熱度

    1回答

    少有關我使用JRuby的問題,回溯比1.9.3少有關,例如: 在JRuby的1.6.8 [1] pry(main)> a = Task.create(title:"Test") ArgumentError: wrong number of arguments (2 for 0) from /Users/salta/.rvm/gems/jruby-1.6.8/gems/mongoid-3.0.6

    2熱度

    1回答

    回溯「可用的放鬆進一步沒有足夠的寄存器和存儲器」切由於這種有用的信息: Backtrace stopped: Not enough registers or memory available to unwind further. 爲什麼這個消息時,我可以做些什麼?