gcc 로 컴파일시 -g 옵션을 주면 object 파일로 소스파일은 만들

notunix의 이미지

안녕하세요
제가 에디터 원격접속(ftp) 으로 코딩하다가 에디터가 다운되면서
편집하던 파일이 size 0 가 되면서 날라가 버렸는데요
debug 할려고 gcc 에 -g 옵션을 주어서 컴파일을 했고요
.o(obj)파일은 남아있습니다 혹시 이걸로 소스를 살릴 수 있을까요 ?
주말에 남아서 작업한게 다 날라가 버렸네요 T.T

아시는 분계시면 도움 부탁드립니다

hys545의 이미지

notunix wrote:
안녕하세요
제가 에디터 원격접속(ftp) 으로 코딩하다가 에디터가 다운되면서
편집하던 파일이 size 0 가 되면서 날라가 버렸는데요
debug 할려고 gcc 에 -g 옵션을 주어서 컴파일을 했고요
.o(obj)파일은 남아있습니다 혹시 이걸로 소스를 살릴 수 있을까요 ?
주말에 남아써 작업한게 다 날라가 버렸네요 T.T

아시는 분계시면 도움 부탁드립니다


vi라면 복구 모드로 시작하면 복구가능할수도..

즐린

notunix의 이미지

흠.... 서버는 linux고 에디터는 window에서 작업한거라
vi를 사용하지 않았거든요
gcc 에서 -g 옵션으로 컴파일하고 debug할수 있는 거
보니까 ......... 소스를 .o 만들수 있을 것 같아서요

작은 행복

송지석의 이미지

음...
objdump를 사용해보심이..
objdump -S myobj.o > a.txt
하시면 소스랑 기계어 디코딩이 섞여서 나옵니다...

notunix의 이미지

해봤는데요
살릴수 있으면 좋겠는데
objdum -S pack.o 로 확인해봤고요
기계어랑 어셈블리만 나오네요

답변 감사드리고요.

다른 방법있으며 또 부탁드립니다
========================================
지금 찾아보고 셋팅을 했는데
window에서 에디터로 linux 원격으로 접속해서 코딩하는데요
에디터에 보면 원격파일도 window(본인의 pc)에 백업하는 기능이
거의 있더군요 그거 설정하고 작업하는게 좋을 것 같네요 ^^
=========================================
(지금 해놓고 save 하니까 backup directory에 서버에
서 편집하던 파일의 bak 파일이 생기는것 확인했음
미리 조심했어야 하는데 )

작은 행복

맹고이의 이미지

gdb로 보면 될 것 같은데요.

gdb foobar.o 해서 list를 해보심이...

notunix의 이미지

main.o
pack.o
util.o

위와 같이 main 함수가 있는 파일과 다른 기능은 따로 컴파일해서
링크를 했는데요
gdb (list)로 확인하면 main 파일에 있는건 한번에 볼수 가 있는데요
pack.o 같이 다른 파일은 step 으로 한라인씩 따라가면서는 소스가
나오는데 list 한번에 확인 할 수가 없네요 ....

메뉴얼을 뒤져보고는 있는데 다른 방도를 아시면 가르침을 부탁드립니다

작은 행복

송지석의 이미지

notunix wrote:
해봤는데
살릴수 있으면 좋겠는데 ...
objdum -S pack.o 로 확인해봤는데요
기계어랑 어셈블리만 나오네요

답변 감사드리고요.

다른 방법있으며 또 부탁드립니다
========================================
지금 찾아보고 셋팅을 했는데
window에서 에디터로 linux 원격으로 접속해서 코딩하는데요
에디터에 보면 원격파일도 window(본인의 pc)에 백업하는 기능이
거의 있더군요 그거 설정하고 작업하는게 좋을 것 같네요 ^^
=========================================
(지금 해놓고 save 하니까 backup directory에 서버에
서 편집하던 파일의 bak 파일이 생기는것 확인했음
미리 조심했어야 하는데 )


makefile snippet 올려주세요.
notunix의 이미지

예 아래와 같습니다
======================================
serv: main.o packet.o util.o
rm -f serv
g++ -g -o serv main.o packet.o util.o

main.o: main.c
rm -f main.o
g++ -g -c main.c

packet.o: lib/packet.cpp
rm -f packet.o
g++ -g -c lib/packet.cpp

util.o:lib/util.c
rm -f util.o
g++ -c lib/util.c

작은 행복

beta의 이미지

되살릴수 없어 보입니다만,...
심볼만 가지고 있는거 gdb가 소스보고 리스팅해주는거 아니었나요?

안좋은 소식이라면 죄송.. 흐흐

notunix wrote:
안녕하세요
제가 에디터 원격접속(ftp) 으로 코딩하다가 에디터가 다운되면서
편집하던 파일이 size 0 가 되면서 날라가 버렸는데요
debug 할려고 gcc 에 -g 옵션을 주어서 컴파일을 했고요
.o(obj)파일은 남아있습니다 혹시 이걸로 소스를 살릴 수 있을까요 ?
주말에 남아서 작업한게 다 날라가 버렸네요 T.T

아시는 분계시면 도움 부탁드립니다

발 담갔다. 이제 익숙해 지는길만이..

송지석의 이미지

notunix wrote:
예 아래와 같습니다
======================================
serv: main.o packet.o util.o
rm -f serv
g++ -g -o serv main.o packet.o util.o

main.o: main.c
rm -f main.o
g++ -g -c main.c

packet.o: lib/packet.cpp
rm -f packet.o
g++ -g -c lib/packet.cpp

util.o:lib/util.c
rm -f util.o
g++ -c lib/util.c


main.o와 packet.o는 -g로 됐지만 util.o는 아니네요...
소스코드가 안에 들어있지 않은 듯...
notunix의 이미지

예 필요한것은 packet.o 의 소스거든요

packet.o 는 -g 옵션을 줘서 컴파일 했었습니다

작은 행복

dg의 이미지

-g옵션으로 컴파일 했어도 오브젝트파일에는 소스파일의 경로만 들어있고 소스 자체는 없습니다..
소스파일 자체를 복구해야 됩니다..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.