[問題] 關於puts()

看板C_and_CPP (C/C++)作者 (............)時間14年前 (2011/09/07 23:30), 編輯推噓5(5014)
留言19則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) CentOS 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) GCC 問題(Question): 想要找到puts(),這個函式的實體位置 我從stdio.h檔案中找到他是宣告成extern 但是我找不到它實體寫在哪邊 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 抱歉很久沒來這邊發文問問題,發現改了好多 如果有格式不符或不對,請各位大大指正 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.16.58

09/07 23:42, , 1F
找lib ?
09/07 23:42, 1F

09/08 00:31, , 2F
我在 glibc 挖了半天,挖不到 puts 的原始碼... orz
09/08 00:31, 2F

09/08 00:33, , 3F
@@ 要puts原始碼做什麼
09/08 00:33, 3F

09/08 00:34, , 4F
手邊沒gcc, 不過 vc 進得去耶..puts.c
09/08 00:34, 4F

09/08 00:37, , 5F
好奇,怎麼讓 gcc 直接回報,VC可以用 cl.exe /Fm src.c
09/08 00:37, 5F

09/08 00:37, , 6F
產生 src.map 檔,會列出符號對應的來源
09/08 00:37, 6F

09/08 00:38, , 7F
原來 cl 有這麼神奇的選項...
09/08 00:38, 7F

09/08 00:40, , 8F
MAP 檔這應該是繼承組合語言時代就有的東西
09/08 00:40, 8F

09/08 00:43, , 9F
不過在gcc輸出的map頂多顯示連結的xxxx.so檔
09/08 00:43, 9F

09/08 00:44, , 10F
要找那個 puts 所在的 .c 檔似乎沒幫助
09/08 00:44, 10F

09/08 00:48, , 11F
天啊,我用 CL.exe 看得好亂..
09/08 00:48, 11F

09/08 00:50, , 12F
原來如此,不過gdb在偵錯 so 時應該也能抓出每個函數的
09/08 00:50, 12F

09/08 00:50, , 13F
原始碼是哪個檔在哪個位置,這些資訊好像存在 so 裡面?
09/08 00:50, 13F

09/08 03:12, , 14F
你要安裝有包含debug symbol的glibc才看得到
09/08 03:12, 14F

09/08 10:46, , 15F
所以意思是說不太可能看到它的原始碼,只能知道他被打包
09/08 10:46, 15F

09/08 10:46, , 16F
成一個.so檔
09/08 10:46, 16F

09/08 10:47, , 17F
是這樣嗎?
09/08 10:47, 17F

09/08 11:29, , 18F
或許去 LinuxDev 版看能不能碰到 jserv 這些大嬸(神) 吧
09/08 11:29, 18F

09/08 11:30, , 19F
libio/ioputs.c (glibc-2.12.2
09/08 11:30, 19F
文章代碼(AID): #1EPuuKP9 (C_and_CPP)
文章代碼(AID): #1EPuuKP9 (C_and_CPP)