亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5086 | 回復(fù): 13
打印 上一主題 下一主題

[C++] gdb獲取到的錯誤,幫忙看下 [復(fù)制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-04-21 11:04 |只看該作者 |倒序瀏覽
  1. * 1    Thread 0x7ffd8657c740 (LWP 2138) "Xgateway" pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94
  2. (gdb) thread 1
  3. [Switching to thread 1 (Thread 0x7ffd8657c740 (LWP 2138))]
  4. #0  pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94
  5. 94              jmp     6b
  6. (gdb) bt
  7. #0  pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94
  8. #1  0x00007ffd84dd414c in __GI___backtrace (array=array@entry=0x7fff36168e90, size=size@entry=64) at ../sysdeps/x86_64/backtrace.c:103
  9. #2  0x00007ffd84d3fdd4 in __libc_message (do_abort=2, fmt=fmt@entry=0x7ffd84e48928 "*** Error in `%s': %s: 0x%s ***\n")
  10.     at ../sysdeps/unix/sysv/linux/libc_fatal.c:176
  11. #3  0x00007ffd84d48b5c in malloc_printerr (ptr=0x1102530, str=0x7ffd84e4607e "malloc(): memory corruption", action=<optimized out>)
  12.     at malloc.c:4972
  13. #4  _int_malloc (av=0x7ffd85084760 <main_arena>, bytes=56) at malloc.c:3426
  14. #5  0x00007ffd84d4a11c in __GI___libc_malloc (bytes=56) at malloc.c:2869
  15. #6  0x00007ffd86381388 in _dl_map_object_deps (map=map@entry=0x7ffd86580000, preloads=preloads@entry=0x0,
  16.     npreloads=npreloads@entry=0, trace_mode=trace_mode@entry=0, open_mode=open_mode@entry=-2147483648) at dl-deps.c:515
  17. #7  0x00007ffd8638792c in dl_open_worker (a=a@entry=0x7fff36169a28) at dl-open.c:265
  18. #8  0x00007ffd86383314 in _dl_catch_error (objname=objname@entry=0x7fff36169a18, errstring=errstring@entry=0x7fff36169a20,
  19.     mallocedp=mallocedp@entry=0x7fff36169a10, operate=operate@entry=0x7ffd863877b0 <dl_open_worker>, args=args@entry=0x7fff36169a28)
  20.     at dl-error.c:177
  21. #9  0x00007ffd8638725b in _dl_open (file=0x7ffd84e44ea6 "libgcc_s.so.1", mode=-2147483647, caller_dlopen=<optimized out>, nsid=-2,
  22.     argc=1, argv=0x7fff3616aab8, env=0x7fff3616aac8) at dl-open.c:656
  23. #10 0x00007ffd84dfa9b2 in do_dlopen (ptr=ptr@entry=0x7fff36169c30) at dl-libc.c:87
  24. #11 0x00007ffd86383314 in _dl_catch_error (objname=0x7fff36169c10, errstring=0x7fff36169c20, mallocedp=0x7fff36169c00,
  25.     operate=0x7ffd84dfa970 <do_dlopen>, args=0x7fff36169c30) at dl-error.c:177
  26. #12 0x00007ffd84dfaa72 in dlerror_run (args=0x7fff36169c30, operate=0x7ffd84dfa970 <do_dlopen>) at dl-libc.c:46
  27. #13 __GI___libc_dlopen_mode (name=name@entry=0x7ffd84e44ea6 "libgcc_s.so.1", mode=mode@entry=-2147483647) at dl-libc.c:163
  28. #14 0x00007ffd84dd4035 in init () at ../sysdeps/x86_64/backtrace.c:52
  29. #15 0x00007ffd86164be0 in pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:103
  30. #16 0x00007ffd84dd414c in __GI___backtrace (array=array@entry=0x7fff36169ef0, size=size@entry=64) at ../sysdeps/x86_64/backtrace.c:103
  31. #17 0x00007ffd84d3fdd4 in __libc_message (do_abort=2, fmt=fmt@entry=0x7ffd84e48928 "*** Error in `%s': %s: 0x%s ***\n")
  32.     at ../sysdeps/unix/sysv/linux/libc_fatal.c:176
  33. #18 0x00007ffd84d48b5c in malloc_printerr (ptr=0x1102530, str=0x7ffd84e4607e "malloc(): memory corruption", action=<optimized out>)
  34.     at malloc.c:4972
  35. #19 _int_malloc (av=0x7ffd85084760 <main_arena>, bytes=1024) at malloc.c:3426
  36. #20 0x00007ffd84d4a11c in __GI___libc_malloc (bytes=1024) at malloc.c:2869
  37. #21 0x00007ffd85cd1baf in evbuffer_chain_new (size=140726835383584, size@entry=200) at buffer.c:177
  38. #22 0x00007ffd85cd6b60 in evbuffer_expand_fast_ (buf=buf@entry=0x1165a20, datlen=datlen@entry=200, n=n@entry=4) at buffer.c:2044
  39. #23 0x00007ffd85cd7238 in evbuffer_read (buf=buf@entry=0x1165a20, fd=fd@entry=101, howmuch=200, howmuch@entry=16384) at buffer.c:2292
  40. #24 0x00007ffd85cde175 in bufferevent_readcb (fd=101, event=<optimized out>, arg=0x1124ed0) at bufferevent_sock.c:167
  41. #25 0x00007ffd85ce3849 in event_persist_closure (ev=<optimized out>, base=0x106f880) at event.c:1531
  42. ---Type <return> to continue, or q <return> to quit---
  43. #26 event_process_active_single_queue (base=base@entry=0x106f880, activeq=0xf6f470, max_to_process=max_to_process@entry=2147483647,
  44.     endtime=endtime@entry=0x0) at event.c:1590
  45. #27 0x00007ffd85ce40ff in event_process_active (base=0x106f880) at event.c:1689
  46. #28 event_base_loop (base=0x106f880, flags=0) at event.c:1912
  47. #29 0x000000000040f531 in MultiServer::StartRun (this=0x1022880) at gateway/src/MultiServer.cpp:366
  48. #30 0x000000000040c8e1 in TControl::Run (this=this@entry=0x7fff3616a9a0) at gateway/src/TControl.cpp:21
  49. #31 0x00000000004061f0 in main (argc=1, argv=0x7fff3616aab8) at gateway/src/node_gateway.cpp:64
復(fù)制代碼
這是一個什么錯誤?

論壇徽章:
12
2015年辭舊歲徽章
日期:2015-03-03 16:54:1515-16賽季CBA聯(lián)賽之同曦
日期:2017-03-17 19:13:162016科比退役紀(jì)念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16賽季CBA聯(lián)賽之福建
日期:2016-01-14 12:49:22程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:002015年亞洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役紀(jì)念章
日期:2018-04-10 16:20:18
2 [報告]
發(fā)表于 2016-04-21 11:30 |只看該作者
本帖最后由 VIP_fuck 于 2016-04-21 11:30 編輯

感覺你是 庫 用錯了,內(nèi)存分配上除了問題。瞎猜的。

#29 0x000000000040f531 in MultiServer::StartRun (this=0x1022880) at gateway/src/MultiServer.cpp:366
從這里入手說不定是個方法

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報告]
發(fā)表于 2016-04-21 11:35 |只看該作者
本帖最后由 jd808 于 2016-04-21 11:37 編輯

#22 0x00007ffd85cd6b60 in evbuffer_expand_fast_ (buf=buf@entry=0x1165a20, datlen=datlen@entry=200, n=n@entry=4) at buffer.c:2044
2044行是
2044                    chain = evbuffer_chain_new(datlen);
(gdb) p datlen
$8 = 200
(gdb) down 1
#21 0x00007ffd85cd1baf in evbuffer_chain_new (size=140726835383584, size@entry=200) at buffer.c:177
177             if ((chain = mm_malloc(to_alloc)) == NULL)
(gdb) p size
$9 = 140726835383584

怎么會這樣?
調(diào)用evbuffer_chain_new的時候,參數(shù)datlen是正常,一旦進(jìn)入evbuffer_chain_new內(nèi)部,他有兩個參數(shù)size=140726835383584, size@entry=200,一個正確,一個不正確,打印size的時候 值是140726835383584,搞不明白

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報告]
發(fā)表于 2016-04-21 11:38 |只看該作者
VIP_fuck 發(fā)表于 2016-04-21 11:30
感覺你是 庫 用錯了,內(nèi)存分配上除了問題。瞎猜的。

#29 0x000000000040f531 in MultiServer::StartRun  ...

bool MultiServer::StartRun()
{
    evconnlistener *listener=NULL;
//    evconnlistener *listener1=NULL;

    LISTER_TYPE * a=new LISTER_TYPE;
//    LISTER_TYPE * b=new LISTER_TYPE;
    a->p_ser=this;
    a->port=m_Port;

    printf("======監(jiān)聽端口=====%d==\n",m_Port);
        //timer event process
        m_runTimerFlag = 1;

        //創(chuàng)建一個定時線程,主要功能是匯報本服務(wù)器的情況
        pthread_create(&m_timerTid, NULL, WorkerTimerEvent, (void *)m_TimeThreadInfo);

        //開啟各個子線程
        for(int i=0; i<m_ThreadCount; i++)
                pthread_create(&m_tid, NULL, WorkerLibevent, (void *)&m_pThreadInfo);

        pthread_create(&m_timerCDTid, NULL, WorkerTimerCDEvent, (void *)m_TimeCDThreadInfo);

        if(Listener(&listener,a)==-1){
                fprintf(stderr, "listen error: %s\n", strerror(errno));
                exit(1);
        }

//        if(g_pConf->OPEN_ROUTING==0){
//                if(Listener(&listener1,b)==-1){
//                                fprintf(stderr, "listen error: %s\n", strerror(errno));
//                                exit(1);
//                }
//        }

    //開啟主線程的事件循環(huán)
    event_base_dispatch(m_EventBase);

    //事件循環(huán)結(jié)果,釋放監(jiān)聽者的內(nèi)存
    evconnlistener_free(listener);
//    if(g_pConf->OPEN_ROUTING==0)
//            evconnlistener_free(listener1);

    return true;
}

這是哪行的代碼     event_base_dispatch(m_EventBase);,這里看不出來任何問題。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報告]
發(fā)表于 2016-04-21 11:41 |只看該作者
猜測應(yīng)該是程序在運行過程中,內(nèi)存越界了,但奇怪的時
#21 0x00007ffd85cd1baf in evbuffer_chain_new (size=140726835383584, size@entry=200) at buffer.c:177
這里為什么有個size是錯的,一個是對的(200那個是對的)
內(nèi)存越界應(yīng)該會導(dǎo)致這個函數(shù)段錯誤吧,怎么會出這種奇怪的錯誤?

論壇徽章:
12
2015年辭舊歲徽章
日期:2015-03-03 16:54:1515-16賽季CBA聯(lián)賽之同曦
日期:2017-03-17 19:13:162016科比退役紀(jì)念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16賽季CBA聯(lián)賽之福建
日期:2016-01-14 12:49:22程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:002015年亞洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役紀(jì)念章
日期:2018-04-10 16:20:18
6 [報告]
發(fā)表于 2016-04-21 11:41 |只看該作者
回復(fù) 4# jd808


    這么看我是看不出來123的,只能提供個參考方向,代碼還得擼主自己慢慢擼啊。說不定我說的是錯的訥。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
7 [報告]
發(fā)表于 2016-04-21 11:45 |只看該作者
VIP_fuck 發(fā)表于 2016-04-21 11:41
回復(fù) 4# jd808
  1. static struct evbuffer_chain *
  2. evbuffer_chain_new(size_t size)
  3. {
  4.         struct evbuffer_chain *chain;
  5.         size_t to_alloc;

  6.         if (size > EVBUFFER_CHAIN_MAX - EVBUFFER_CHAIN_SIZE)
  7.                 return (NULL);

  8.         size += EVBUFFER_CHAIN_SIZE;

  9.         /* get the next largest memory that can hold the buffer */
  10.         if (size < EVBUFFER_CHAIN_MAX / 2) {
  11.                 to_alloc = MIN_BUFFER_SIZE;
  12.                 while (to_alloc < size) {
  13.                         to_alloc <<= 1;
  14.                 }
  15.         } else {
  16.                 to_alloc = size;
  17.         }

  18.         /* we get everything in one chunk */
  19.         if ((chain = mm_malloc(to_alloc)) == NULL)
  20.                 return (NULL);

  21.         memset(chain, 0, EVBUFFER_CHAIN_SIZE);

  22.         chain->buffer_len = to_alloc - EVBUFFER_CHAIN_SIZE;

  23.         /* this way we can manipulate the buffer to different addresses,
  24.          * which is required for mmap for example.
  25.          */
  26.         chain->buffer = EVBUFFER_CHAIN_EXTRA(u_char, chain);

  27.         chain->refcnt = 1;

  28.         return (chain);
  29. }
復(fù)制代碼
能幫我解釋下這個函數(shù)么?傳進(jìn)來怎么會有兩個參數(shù)》?
#21 0x00007ffd85cd1baf in evbuffer_chain_new (size=140726835383584, size@entry=200) at buffer.c:177
size@entry=200這個是對的

論壇徽章:
12
2015年辭舊歲徽章
日期:2015-03-03 16:54:1515-16賽季CBA聯(lián)賽之同曦
日期:2017-03-17 19:13:162016科比退役紀(jì)念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16賽季CBA聯(lián)賽之福建
日期:2016-01-14 12:49:22程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-08 22:20:002015年亞洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役紀(jì)念章
日期:2018-04-10 16:20:18
8 [報告]
發(fā)表于 2016-04-21 11:49 |只看該作者
回復(fù) 7# jd808


    前提是,我不知道這個庫怎么用。所以都是猜。

    看起來是編譯器插進(jìn)去的一個值,不過沒明白這個值是干啥的。錯誤不應(yīng)該出在這里。或者你加打印,一步步的走,逐步縮小錯誤的范圍。

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
9 [報告]
發(fā)表于 2016-04-21 12:07 |只看該作者
0x00007ffd84d3fdd4 in __libc_message (do_abort=2, fmt=fmt@entry=0x7ffd84e48928 "*** Error in `%s': %s: 0x%s ***\n")

0x%X吧?0x%s錯了?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
10 [報告]
發(fā)表于 2016-04-21 12:18 |只看該作者
yulihua49 發(fā)表于 2016-04-21 12:07
0x00007ffd84d3fdd4 in __libc_message (do_abort=2, fmt=fmt@entry=0x7ffd84e48928 "*** Error in `%s': % ...
這個是libevent里面的
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP