本文整理汇总了C++中ptid_equal函数的典型用法代码示例。如果您正苦于以下问题:C++ ptid_equal函数的具体用法?C++ ptid_equal怎么用?C++ ptid_equal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ptid_equal函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: lynx_resume
static void
lynx_resume (struct thread_resume *resume_info, size_t n)
{
ptid_t ptid = resume_info[0].thread;
const int request
= (resume_info[0].kind == resume_step
? (n == 1 ? PTRACE_SINGLESTEP_ONE : PTRACE_SINGLESTEP)
: PTRACE_CONT);
const int signal = resume_info[0].sig;
/* If given a minus_one_ptid, then try using the current_process'
private->last_wait_event_ptid. On most LynxOS versions,
using any of the process' thread works well enough, but
LynxOS 178 is a little more sensitive, and triggers some
unexpected signals (Eg SIG61) when we resume the inferior
using a different thread. */
if (ptid_equal (ptid, minus_one_ptid))
ptid = current_process()->priv->last_wait_event_ptid;
/* The ptid might still be minus_one_ptid; this can happen between
the moment we create the inferior or attach to a process, and
the moment we resume its execution for the first time. It is
fine to use the current_thread's ptid in those cases. */
if (ptid_equal (ptid, minus_one_ptid))
ptid = thread_to_gdb_id (current_thread);
regcache_invalidate ();
errno = 0;
lynx_ptrace (request, ptid, 1, signal, 0);
if (errno)
perror_with_name ("ptrace");
}
开发者ID:dcolascione,项目名称:binutils,代码行数:33,代码来源:lynx-low.c
示例2: ptid_is_pid
int
ptid_is_pid (ptid_t ptid)
{
if (ptid_equal (minus_one_ptid, ptid)
|| ptid_equal (null_ptid, ptid))
return 0;
return (ptid_get_lwp (ptid) == 0 && ptid_get_tid (ptid) == 0);
}
开发者ID:Levi-Armstrong,项目名称:gdb-7.7.1,代码行数:9,代码来源:ptid.c
示例3: ptid_lwp_p
int
ptid_lwp_p (ptid_t ptid)
{
if (ptid_equal (minus_one_ptid, ptid)
|| ptid_equal (null_ptid, ptid))
return 0;
return (ptid_get_lwp (ptid) != 0);
}
开发者ID:Levi-Armstrong,项目名称:gdb-7.7.1,代码行数:9,代码来源:ptid.c
示例4: ptid_match
int
ptid_match (ptid_t ptid, ptid_t filter)
{
if (ptid_equal (filter, minus_one_ptid))
return 1;
if (ptid_is_pid (filter)
&& ptid_get_pid (ptid) == ptid_get_pid (filter))
return 1;
else if (ptid_equal (ptid, filter))
return 1;
return 0;
}
开发者ID:mbref,项目名称:binutils-gdb-microblaze,代码行数:13,代码来源:ptid.c
示例5: info_mach_exceptions_command
static void
info_mach_exceptions_command (const char *args, int from_tty)
{
int i;
task_t task;
kern_return_t kret;
darwin_exception_info info;
info.count = sizeof (info.ports) / sizeof (info.ports[0]);
if (args != NULL)
{
if (strcmp (args, "saved") == 0)
{
if (ptid_equal (inferior_ptid, null_ptid))
printf_unfiltered (_("No inferior running\n"));
darwin_inferior *priv = get_darwin_inferior (current_inferior ());
disp_exception (&priv->exception_info);
return;
}
else if (strcmp (args, "host") == 0)
{
/* FIXME: This need a privilegied host port! */
kret = host_get_exception_ports
(darwin_host_self, EXC_MASK_ALL, info.masks,
&info.count, info.ports, info.behaviors, info.flavors);
MACH_CHECK_ERROR (kret);
disp_exception (&info);
}
else
error (_("Parameter is saved, host or none"));
}
else
{
struct inferior *inf;
if (ptid_equal (inferior_ptid, null_ptid))
printf_unfiltered (_("No inferior running\n"));
inf = current_inferior ();
darwin_inferior *priv = get_darwin_inferior (inf);
kret = task_get_exception_ports
(priv->task, EXC_MASK_ALL, info.masks,
&info.count, info.ports, info.behaviors, info.flavors);
MACH_CHECK_ERROR (kret);
disp_exception (&info);
}
}
开发者ID:sifive,项目名称:riscv-binutils-gdb,代码行数:51,代码来源:darwin-nat-info.c
示例6: generic_prepare_to_proceed
/* Generic prepare_to_proceed(). This one should be suitable for most
targets that support threads. */
int
generic_prepare_to_proceed (int select_it)
{
ptid_t wait_ptid;
struct target_waitstatus wait_status;
/* Get the last target status returned by target_wait(). */
get_last_target_status (&wait_ptid, &wait_status);
/* Make sure we were stopped either at a breakpoint, or because
of a Ctrl-C. */
if (wait_status.kind != TARGET_WAITKIND_STOPPED
|| (wait_status.value.sig != TARGET_SIGNAL_TRAP &&
wait_status.value.sig != TARGET_SIGNAL_INT))
{
return 0;
}
if (!ptid_equal (wait_ptid, minus_one_ptid)
&& !ptid_equal (inferior_ptid, wait_ptid))
{
/* Switched over from WAIT_PID. */
CORE_ADDR wait_pc = read_pc_pid (wait_ptid);
if (wait_pc != read_pc ())
{
if (select_it)
{
/* Switch back to WAIT_PID thread. */
inferior_ptid = wait_ptid;
/* FIXME: This stuff came from switch_to_thread() in
thread.c (which should probably be a public function). */
flush_cached_frames ();
registers_changed ();
stop_pc = wait_pc;
select_frame (get_current_frame ());
}
/* We return 1 to indicate that there is a breakpoint here,
so we need to step over it before continuing to avoid
hitting it straight away. */
if (breakpoint_here_p (wait_pc))
{
return 1;
}
}
}
return 0;
}
开发者ID:jichu4n,项目名称:prc-tools-remix,代码行数:52,代码来源:arch-utils.c
示例7: mi_cmd_var_update_iter
static void
mi_cmd_var_update_iter (struct varobj *var, void *data_pointer)
{
struct mi_cmd_var_update *data = data_pointer;
int thread_id, thread_stopped;
thread_id = varobj_get_thread_id (var);
if (thread_id == -1
&& (ptid_equal (inferior_ptid, null_ptid)
|| is_stopped (inferior_ptid)))
thread_stopped = 1;
else
{
struct thread_info *tp = find_thread_id (thread_id);
if (tp)
thread_stopped = is_stopped (tp->ptid);
else
thread_stopped = 1;
}
if (thread_stopped
&& (!data->only_floating || varobj_floating_p (var)))
varobj_update_one (var, data->print_values, 0 /* implicit */);
}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:26,代码来源:mi-cmd-var.c
示例8: find_active_thread
static ptid_t
find_active_thread (void)
{
int val;
td_thread_t *thread;
td_thread_info_t ti;
struct ptrace_lwpinfo pl;
if (!ptid_equal (cached_thread, minus_one_ptid))
return cached_thread;
if (target_has_execution)
{
pl.pl_lwpid = 0;
val = ptrace (PT_LWPINFO, ptid_get_pid(inferior_ptid), (void *)&pl, sizeof(pl));
while ((val != -1) && (pl.pl_lwpid != 0) &&
(pl.pl_event != PL_EVENT_SIGNAL)) {
val = ptrace (PT_LWPINFO, ptid_get_pid(inferior_ptid), (void *)&pl, sizeof(pl));
}
if (pl.pl_lwpid == 0)
/* found no "active" thread, stay with current */
pl.pl_lwpid = inferior_ptid.lwp;
}
else
{
return inferior_ptid;
}
cached_thread = ptid_build (ptid_get_pid (main_ptid), pl.pl_lwpid, 0);
return cached_thread;
}
开发者ID:ryo,项目名称:netbsd-src,代码行数:31,代码来源:nbsd-thread.c
示例9: kill_command
static void
kill_command (char *arg, int from_tty)
{
/* FIXME: This should not really be inferior_ptid (or target_has_execution).
It should be a distinct flag that indicates that a target is active, cuz
some targets don't have processes! */
if (ptid_equal (inferior_ptid, null_ptid))
error ("The program is not being run.");
if (!query ("Kill the program being debugged? "))
error ("Not confirmed.");
target_kill ();
init_thread_list (); /* Destroy thread info */
/* Killing off the inferior can leave us with a core file. If so,
print the state we are left in. */
if (target_has_stack)
{
printf_filtered ("In %s,\n", target_longname);
if (deprecated_selected_frame == NULL)
fputs_filtered ("No selected stack frame.\n", gdb_stdout);
else
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
bfd_cache_close_all ();
}
开发者ID:DonCN,项目名称:haiku,代码行数:27,代码来源:inflow.c
示例10: nbsd_update_thread_list
static void
nbsd_update_thread_list (struct target_ops *ops)
{
int retval;
ptid_t ptid;
if (nbsd_thread_active == 0)
return;
if (ptid_equal (inferior_ptid, minus_one_ptid))
{
printf_filtered ("No process.\n");
return;
}
if (target_has_execution)
{
struct ptrace_lwpinfo pl;
pl.pl_lwpid = 0;
retval = ptrace (PT_LWPINFO, ptid_get_pid(inferior_ptid), (void *)&pl, sizeof(pl));
while ((retval != -1) && pl.pl_lwpid != 0)
{
ptid = ptid_build (ptid_get_pid (main_ptid), pl.pl_lwpid, 0);
if (!in_thread_list (ptid))
add_thread (ptid);
retval = ptrace (PT_LWPINFO, ptid_get_pid(inferior_ptid), (void *)&pl, sizeof(pl));
}
}
}
开发者ID:ryo,项目名称:netbsd-src,代码行数:29,代码来源:nbsd-thread.c
示例11: find_thread_object
thread_object *
find_thread_object (ptid_t ptid)
{
int pid;
struct threadlist_entry *thread;
PyObject *inf_obj;
thread_object *found = NULL;
pid = ptid_get_pid (ptid);
if (pid == 0)
return NULL;
inf_obj = find_inferior_object (pid);
if (! inf_obj)
return NULL;
for (thread = ((inferior_object *)inf_obj)->threads; thread;
thread = thread->next)
if (ptid_equal (thread->thread_obj->thread->ptid, ptid))
{
found = thread->thread_obj;
break;
}
Py_DECREF (inf_obj);
if (found)
return found;
return NULL;
}
开发者ID:Drakey83,项目名称:steamlink-sdk,代码行数:32,代码来源:py-inferior.c
示例12: get_task_from_args
static task_t
get_task_from_args (const char *args)
{
task_t task;
char *eptr;
if (args == NULL || *args == 0)
{
if (ptid_equal (inferior_ptid, null_ptid))
printf_unfiltered (_("No inferior running\n"));
darwin_inferior *priv = get_darwin_inferior (current_inferior ());
return priv->task;
}
if (strcmp (args, "gdb") == 0)
return mach_task_self ();
task = strtoul (args, &eptr, 0);
if (*eptr)
{
printf_unfiltered (_("cannot parse task id '%s'\n"), args);
return TASK_NULL;
}
return task;
}
开发者ID:sifive,项目名称:riscv-binutils-gdb,代码行数:25,代码来源:darwin-nat-info.c
示例13: r_debug_qnx_wait
static int r_debug_qnx_wait (RDebug *dbg, int pid) {
ptid_t ptid = qnxr_wait (desc, pid);
if (!ptid_equal (ptid, null_ptid)) {
dbg->reason.signum = desc->signal;
return desc->notify_type;
}
return 0;
}
开发者ID:Bayinformationtechnologies,项目名称:radare2,代码行数:8,代码来源:debug_qnx.c
示例14: gdbsim_thread_alive
static int
gdbsim_thread_alive (struct target_ops *ops, ptid_t ptid)
{
if (ptid_equal (ptid, remote_sim_ptid))
/* The simulators' task is always alive. */
return 1;
return 0;
}
开发者ID:davearrama,项目名称:gdb,代码行数:9,代码来源:remote-sim.c
示例15: record_btrace_find_resume_thread
static struct thread_info *
record_btrace_find_resume_thread (ptid_t ptid)
{
struct thread_info *tp;
/* When asked to resume everything, we pick the current thread. */
if (ptid_equal (minus_one_ptid, ptid) || ptid_is_pid (ptid))
ptid = inferior_ptid;
return find_thread_ptid (ptid);
}
开发者ID:embecosm,项目名称:binutils-gdb,代码行数:11,代码来源:record-btrace.c
示例16: dcache_info
static void
dcache_info (char *exp, int tty)
{
splay_tree_node n;
int i, refcount;
if (exp)
{
char *linestart;
i = strtol (exp, &linestart, 10);
if (linestart == exp || i < 0)
{
printf_filtered (_("Usage: info dcache [linenumber]\n"));
return;
}
dcache_print_line (i);
return;
}
printf_filtered (_("Dcache %u lines of %u bytes each.\n"),
dcache_size,
last_cache ? (unsigned) last_cache->line_size
: dcache_line_size);
if (!last_cache || ptid_equal (last_cache->ptid, null_ptid))
{
printf_filtered (_("No data cache available.\n"));
return;
}
printf_filtered (_("Contains data for %s\n"),
target_pid_to_str (last_cache->ptid));
refcount = 0;
n = splay_tree_min (last_cache->tree);
i = 0;
while (n)
{
struct dcache_block *db = (struct dcache_block *) n->value;
printf_filtered (_("Line %d: address %s [%d hits]\n"),
i, paddress (target_gdbarch, db->addr), db->refs);
i++;
refcount += db->refs;
n = splay_tree_successor (last_cache->tree, n->key);
}
printf_filtered (_("Cache state: %d active lines, %d hits\n"), i, refcount);
}
开发者ID:AhmadTux,项目名称:DragonFlyBSD,代码行数:54,代码来源:dcache.c
示例17: target_pid_to_str
const char *
target_pid_to_str (ptid_t ptid)
{
static char buf[80];
if (ptid_equal (ptid, minus_one_ptid))
xsnprintf (buf, sizeof (buf), "<all threads>");
else if (ptid_equal (ptid, null_ptid))
xsnprintf (buf, sizeof (buf), "<null thread>");
else if (ptid_get_tid (ptid) != 0)
xsnprintf (buf, sizeof (buf), "Thread %d.0x%lx",
ptid_get_pid (ptid), ptid_get_tid (ptid));
else if (ptid_get_lwp (ptid) != 0)
xsnprintf (buf, sizeof (buf), "LWP %d.%ld",
ptid_get_pid (ptid), ptid_get_lwp (ptid));
else
xsnprintf (buf, sizeof (buf), "Process %d",
ptid_get_pid (ptid));
return buf;
}
开发者ID:mbref,项目名称:binutils-gdb-microblaze,代码行数:21,代码来源:target.c
示例18: nto_set_thread
static int
nto_set_thread (ptid_t ptid)
{
int res = 0;
TRACE ("%s pid: %d tid: %ld\n", __func__, ptid_get_pid (ptid),
ptid_get_lwp (ptid));
if (nto_inferior.ctl_fd != -1
&& !ptid_equal (ptid, null_ptid)
&& !ptid_equal (ptid, minus_one_ptid))
{
pthread_t tid = ptid_get_lwp (ptid);
if (EOK == devctl (nto_inferior.ctl_fd, DCMD_PROC_CURTHREAD, &tid,
sizeof (tid), 0))
res = 1;
else
TRACE ("%s: Error: failed to set current thread\n", __func__);
}
return res;
}
开发者ID:Akheon23,项目名称:chromecast-mirrored-source.toolchain,代码行数:21,代码来源:nto-low.c
示例19: gdbsim_resume
static void
gdbsim_resume (struct target_ops *ops,
ptid_t ptid, int step, enum target_signal siggnal)
{
if (!ptid_equal (inferior_ptid, remote_sim_ptid))
error (_("The program is not being run."));
if (remote_debug)
printf_filtered ("gdbsim_resume: step %d, signal %d\n", step, siggnal);
resume_siggnal = siggnal;
resume_step = step;
}
开发者ID:davearrama,项目名称:gdb,代码行数:13,代码来源:remote-sim.c
示例20: gdbsim_pid_to_str
static char *
gdbsim_pid_to_str (struct target_ops *ops, ptid_t ptid)
{
static char buf[64];
if (ptid_equal (remote_sim_ptid, ptid))
{
xsnprintf (buf, sizeof buf, "Thread <main>");
return buf;
}
return normal_pid_to_str (ptid);
}
开发者ID:davearrama,项目名称:gdb,代码行数:13,代码来源:remote-sim.c
注:本文中的ptid_equal函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论