new에서 Segmentation fault

purewell의 이미지

일단 검색으로 찾은 URL이긴 하지만 모든 경우가 잘 체크되어 있습니다.
http://bbs.kldp.org/viewtopic.php?t=22834

1. inline 함수는 없습니다.
2. -On 옵션은 쓰지 않았습니다.
3. memset/memcpy 종류 함수를 쓰지 않습니다.
4. malloc/free는 쓰지 않습니다. (new/delete만 씁니다)
5. 바운드를 넘어선 데이터 쓰기를 하지 않습니다.
6. RedHat9/kernel-smp-2.4.20-28.9
7. libstdc++-3.2.2-5, gcc-c++-3.2.2-5, libstdc++-devel-3.2.2-5

typedef struct tagMyStruct
{
  int msg;
  int time;
} MyStruct, *PMyStruct;



........


PMyStruct SomeFunction(void)
{
  PMyStruct pRet;
  pRet = new MyStruct;  // 여기!!
  return pRet;
}

위의 코드 중에 저 함수를 자주 호출합니다.
그런데 어느 순간(일정치 않음) new 연산자에서
죽습니다.

GDB의 메시지는 다음과 같습니다.

Quote:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1075323008 (LWP 9226)]
0x4207435e in _int_malloc () from /lib/tls/libc.so.6
kuma의 이미지

SomeFunction 에 delete 가 없네요. 어느순간 메모리가 부족해져서 메모리 할당을 못하겠죠 ?

purewell의 이미지

^ -^) SomeFunction에서 delete 하지 않고,

SomeFunction을 호출한 녀석이 delete 하게 되어 있습니다.

top이나 ps -aux로 메모리 상태 호출하면 0.3%도 채 쓰지 않습니다.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

akbar의 이미지

...

datamind의 이미지

재미있는 문제 같은데, 괜찮다면 문제에 대해서 같이 연구해 보고 싶은데,
현재로는 정보가 부족해서 어려움이 있네요..
문제가 나는 상황을 별도로 만드실수 있는지요....
아니면, 좀더 자세한 설명을 부탁드립니다.

cdpark의 이미지

같은 메모리를 두번 delete하지는 않는지요?

new[]와 delete[]는 제대로 쓰이고 있는지요?

다른 메모리 관리 프로그램은 시도해 보셨는지요?

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.