⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 point.c

📁 linux下的多线程调试工具
💻 C
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2004,2005,2006  Bull S.A. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#if HAVE_CONFIG_H#include <config.h>#endif#include "types.h"#define TR1(param,x) {1, {EVT_##x, 0}}#define TR2(param,x,y) {2, {EVT_##x,EVT_##y, 0}}#define TR3(param,x,y,z) {3, {EVT_##x,EVT_##y,EVT_##z}}ptt_point_data_t ptt_point_array[] = {    {0, {0, 0, 0}},    TR1(INIT, START_USER_FUNC),    TR1(FINI, END_USER_FUNC),    TR3(BARRIER_1, BARRIER_DESTROY_IN, BARRIER_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR2(BARRIER_2, THREAD_STATE_WAKE,  BARRIER_LOCK_TAKEN),    TR1(BARRIER_3, BARRIER_LOCK_FREE),    TR1(BARRIER_4, BARRIER_DESTROY_OUT),    TR1(BARRIER_5, BARRIER_INIT_IN),    TR1(BARRIER_6, BARRIER_INIT_OUT),    TR2(BARRIER_7, BARRIER_INIT, BARRIER_INIT_OUT),    TR3(BARRIER_8, BARRIER_WAIT_IN, BARRIER_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR1(BARRIER_9, BARRIER_LEFT_DEC),    TR2(BARRIER_10, BARRIER_LEFT_INC, BARRIER_LOCK_FREE),    TR1(BARRIER_11, BARRIER_LEFT_INC),    TR1(BARRIER_12, BARRIER_WAIT_OUT),    TR1(BARRIER_13, BARRIER_DESTROY),    TR1(BARRIER_14, THREAD_STATE_WAIT_BARRIER),    TR1(BARRIER_15, THREAD_STATE_WAKE_BARRIER),    TR3(COND_1, COND_DESTROY_IN, COND_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR2(COND_2, THREAD_STATE_WAKE, COND_LOCK_TAKEN),    TR1(COND_3, COND_LOCK_FREE),    TR1(COND_4, COND_DESTROY_OUT),    TR1(COND_5, COND_TOTAL_SEQ_SET),    TR2(COND_6, THREAD_STATE_WAKE, COND_LOCK_REQUIRE),    TR1(COND_7, COND_LOCK_TAKEN),    TR2(COND_8, COND_DESTROY, COND_DESTROY_OUT),    TR1(COND_9, COND_INIT_IN),    TR2(COND_10, COND_INIT, COND_INIT_OUT),    TR3(COND_11, COND_WAIT_IN, COND_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR1(COND_12, COND_WAIT_OUT),    TR1(COND_13, COND_MUTEX_FREE),    TR1(COND_14, COND_TOTAL_SEQ_INC),    TR2(COND_15, COND_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR1(COND_16, COND_MUTEX_REQUIRE),    TR2(COND_17, COND_MUTEX_TAKEN, COND_WAIT_OUT),    TR3(COND_18, COND_BROAD_IN, COND_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR2(COND_19, COND_BROAD_SEQ_INC, COND_LOCK_FREE),    TR1(COND_20, COND_BROAD_OUT),    TR3(COND_21, COND_SIGNAL_IN, COND_LOCK_REQUIRE, THREAD_STATE_WAIT),    TR1(COND_22, COND_SIGNAL_OUT),    TR1(COND_23, THREAD_STATE_WAIT_COND),    TR1(COND_24, THREAD_STATE_WAKE_COND),    TR1(MUTEX_1, MUTEX_DESTROY_IN),    TR1(MUTEX_2, MUTEX_DESTROY_OUT),    TR2(MUTEX_3, MUTEX_DESTROY, MUTEX_DESTROY_OUT),    TR1(MUTEX_4, MUTEX_INIT_IN),    TR1(MUTEX_5, MUTEX_INIT_OUT),    TR2(MUTEX_6, MUTEX_INIT, MUTEX_INIT_OUT),    TR1(MUTEX_7, MUTEX_LOCK_IN),    TR1(MUTEX_8, MUTEX_LOCK_OUT),    TR2(MUTEX_9, MUTEX_COUNT_INC, MUTEX_LOCK_OUT),    TR2(MUTEX_10, MUTEX_STATE_REQUIRE, THREAD_STATE_WAIT_MUTEX),    TR2(MUTEX_11, THREAD_STATE_WAKE_MUTEX, MUTEX_STATE_TAKEN),    TR1(MUTEX_12, MUTEX_COUNT_INC),    TR2(MUTEX_13, MUTEX_OWNER_CHANGE, MUTEX_LOCK_OUT),    TR1(MUTEX_14, MUTEX_UNLOCK_IN),    TR1(MUTEX_15, MUTEX_UNLOCK_OUT),    TR2(MUTEX_16, MUTEX_COUNT_DEC, MUTEX_UNLOCK_OUT),    TR1(MUTEX_17, MUTEX_OWNER_CHANGE),    TR1(MUTEX_18, MUTEX_STATE_FREE),    TR1(THREAD_1, THREAD_STATE_DEAD),    TR1(THREAD_2, THREAD_STATE_WAIT),    TR1(THREAD_3, THREAD_STATE_WAKE),    TR1(THREAD_4, THREAD_CANCEL_IN),    TR1(THREAD_5, THREAD_CANCEL_OUT),    TR1(THREAD_6, THREAD_CANCEL_PROG),    TR2(THREAD_7, THREAD_STATE_CANCEL, THREAD_CANCEL_OUT),    TR1(THREAD_8, THREAD_CREATE_IN),    TR1(THREAD_9, THREAD_CREATE_OUT),    TR1(THREAD_10, THREAD_SET_PD),    TR3(THREAD_11, THREAD_INIT, THREAD_DETACH, THREAD_CREATE_OUT),    TR2(THREAD_12, THREAD_INIT, THREAD_CREATE_OUT),    TR1(THREAD_13, THREAD_JOIN_IN),    TR1(THREAD_14, THREAD_JOIN_OUT),    TR2(THREAD_15, THREAD_STATE_WAKE, THREAD_JOIN),    TR1(FORK, PROG_FORK),    TR1(SEM_1, SEM_INIT_IN),    TR1(SEM_2, SEM_INIT_OUT),    TR2(SEM_3, SEM_INIT, SEM_INIT_OUT),    TR3(SEM_4, SEM_DESTROY_IN, SEM_DESTROY, SEM_DESTROY_OUT),    TR2(SEM_5, SEM_POST_IN, SEM_COUNT_INC),    TR1(SEM_6, SEM_POST_OUT),    TR1(SEM_7, SEM_WAIT_IN),    TR2(SEM_8, SEM_COUNT_DEC, SEM_WAIT_OUT),    TR1(SEM_9, SEM_WAIT_OUT),    TR2(SEM_10, SEM_COUNT_DEC, SEM_TRYWAIT_OUT),    TR1(SEM_11, SEM_TRYWAIT_OUT),    TR1(SEM_12, SEM_TRYWAIT_IN),    TR2(SEM_13, SEM_CLOSE_IN, SEM_MAPPINGSLOCK_REQUIRE),    TR1(SEM_14, SEM_MAPPINGSLOCK_TAKEN),    TR2(SEM_15, SEM_MAPPINGSLOCK_FREE, SEM_CLOSE_OUT),    TR1(SEM_16, SEM_REFCOUNT_DEC),    TR1(SEM_17, SEM_DESTROY),    TR1(SEM_18, SEM_MAPPINGSLOCK_REQUIRE),    TR1(SEM_19, SEM_MAPPINGSLOCK_FREE),    TR1(SEM_20, SEM_REFCOUNT_INC),    TR1(SEM_21, SEM_INIT),    TR1(SEM_22, SEM_OPEN_IN),    TR1(SEM_23, SEM_OPEN_OUT),    TR1(SEM_24, SEM_UNLINK_IN),    TR1(SEM_25, SEM_UNLINK_OUT),    TR1(SEM_26, SEM_OPEN_CREATE),    TR1(SEM_27, THREAD_STATE_WAIT_SEM),    TR1(SEM_28, THREAD_STATE_WAKE_SEM),};ptt_point_compiled_data_t ptt_point_compiled_array[] = {#if __WORDSIZE == 64    {{}, 0, 7},                                                 /* NULL */    {{PTT_UINT}, 1, 8},                                         /* INIT */    {{}, 0, 7},                                                 /* FINI */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* BAR_1 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* BAR_2 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* BAR_3 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* BAR_4 */    {{PTT_PTR, PTT_PTR, PTT_UINT}, 3, 12},                      /* BAR_5 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* BAR_6 */    {{PTT_PTR, PTT_UINT, PTT_PTR, PTT_INT}, 4, 13},             /* BAR_7 */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* BAR_8 */    {{PTT_PTR, PTT_UINT}, 2, 10},                               /* BAR_9 */    {{PTT_PTR, PTT_UINT, PTT_PTR, PTT_INT}, 4, 13},             /* BAR_10 */    {{PTT_PTR, PTT_UINT}, 2, 10},                               /* BAR_11 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* BAR_12 */    {{PTT_PTR}, 1, 9},                                          /* BAR_13 */    {{PTT_PTR}, 1, 9},                                          /* BAR_14 */    {{PTT_PTR}, 1, 9},                                          /* BAR_15 */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* COND_1 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_2 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_3 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_4 */    {{PTT_PTR, PTT_ULL}, 2, 11},                                /* COND_5 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_6 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_7 */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* COND_8 */    {{PTT_PTR, PTT_PTR}, 2, 11},                                /* COND_9 */    {{PTT_PTR, PTT_PTR, PTT_ULL, PTT_UINT, PTT_PTR, PTT_INT}, 6, 17},    {{PTT_PTR, PTT_PTR, PTT_PTR, PTT_INT}, 4, 14},              /* COND_11 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_12 */    {{PTT_PTR, PTT_PTR}, 2, 11},                                /* COND_13 */    {{PTT_PTR, PTT_ULL}, 2, 11},                                /* COND_14 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_15 */    {{PTT_PTR, PTT_PTR}, 2, 11},                                /* COND_16 */    {{PTT_PTR, PTT_PTR, PTT_PTR, PTT_INT}, 4, 14},              /* COND_17 */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* COND_18 */    {{PTT_PTR, PTT_UINT, PTT_PTR, PTT_INT}, 4, 13},             /* COND_19 */    {{PTT_PTR, PTT_INT}, 2, 10},                                /* COND_20 */    {{PTT_PTR, PTT_PTR, PTT_INT}, 3, 12},                       /* COND_21 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -