gdb, btrace: improve error messages
When trying to use 'record btrace' on a system that does not support it, the error message isn't as clear as it could be. See https://sourceware.org/pipermail/gdb/2022-January/049870.html. Improve the error message in a few cases. Reported-by: Simon Sobisch <simonsobisch@gnu.org>
This commit is contained in:
parent
219c04fc3b
commit
cd393cec3a
1 changed files with 19 additions and 2 deletions
|
@ -427,9 +427,11 @@ diagnose_perf_event_open_fail ()
|
|||
case EACCES:
|
||||
{
|
||||
static const char filename[] = "/proc/sys/kernel/perf_event_paranoid";
|
||||
errno = 0;
|
||||
gdb_file_up file = gdb_fopen_cloexec (filename, "r");
|
||||
if (file.get () == nullptr)
|
||||
break;
|
||||
error (_("Failed to open %s (%s). Your system does not support "
|
||||
"process recording."), filename, safe_strerror (errno));
|
||||
|
||||
int level, found = fscanf (file.get (), "%d", &level);
|
||||
if (found == 1 && level > 2)
|
||||
|
@ -571,7 +573,22 @@ perf_event_pt_event_type ()
|
|||
errno = 0;
|
||||
gdb_file_up file = gdb_fopen_cloexec (filename, "r");
|
||||
if (file.get () == nullptr)
|
||||
error (_("Failed to open %s: %s."), filename, safe_strerror (errno));
|
||||
switch (errno)
|
||||
{
|
||||
case EACCES:
|
||||
case EFAULT:
|
||||
case EPERM:
|
||||
error (_("Failed to open %s (%s). You do not have permission "
|
||||
"to use Intel PT."), filename, safe_strerror (errno));
|
||||
|
||||
case ENOTDIR:
|
||||
case ENOENT:
|
||||
error (_("Failed to open %s (%s). Your system does not support "
|
||||
"Intel PT."), filename, safe_strerror (errno));
|
||||
|
||||
default:
|
||||
error (_("Failed to open %s: %s."), filename, safe_strerror (errno));
|
||||
}
|
||||
|
||||
int type, found = fscanf (file.get (), "%d", &type);
|
||||
if (found != 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue