GDB (xrefs)
Loading...
Searching...
No Matches
filesystem.c
Go to the documentation of this file.
1/* Handle different target file systems for GDB, the GNU Debugger.
2
3 Copyright (C) 2010-2023 Free Software Foundation, Inc.
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20#include "defs.h"
21#include "filesystem.h"
22#include "gdbarch.h"
23#include "gdbcmd.h"
24
25const char file_system_kind_auto[] = "auto";
26const char file_system_kind_unix[] = "unix";
27const char file_system_kind_dos_based[] = "dos-based";
36
37const char *
50
51const char *
52target_lbasename (const char *kind, const char *name)
53{
55 return dos_lbasename (name);
56 else
57 return unix_lbasename (name);
58}
59
60static void
62 int from_tty,
63 struct cmd_list_element *c,
64 const char *value)
65{
67 gdb_printf (file, _("\
68The assumed file system kind for target reported file names \
69is \"%s\" (currently \"%s\").\n"),
70 value,
72 else
73 gdb_printf (file, _("\
74The assumed file system kind for target reported file names \
75is \"%s\".\n"),
76 value);
77}
78
80void
82{
83 add_setshow_enum_cmd ("target-file-system-kind",
87Set assumed file system kind for target reported file names."), _("\
88Show assumed file system kind for target reported file names."),
89 _("\
90If `unix', target file names (e.g., loaded shared library file names)\n\
91starting the forward slash (`/') character are considered absolute,\n\
92and the directory separator character is the forward slash (`/'). If\n\
93`dos-based', target file names starting with a drive letter followed\n\
94by a colon (e.g., `c:'), are also considered absolute, and the\n\
95backslash (`\\') is also considered a directory separator. Set to\n\
96`auto' (which is the default), to let GDB decide, based on its\n\
97knowledge of the target operating system."),
98 NULL, /* setfunc */
100 &setlist, &showlist);
101}
const char *const name
struct gdbarch * target_gdbarch(void)
struct cmd_list_element * showlist
Definition cli-cmds.c:127
struct cmd_list_element * setlist
Definition cli-cmds.c:119
set_show_commands add_setshow_enum_cmd(const char *name, enum command_class theclass, const char *const *enumlist, const char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_func_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
Definition cli-decode.c:688
@ class_files
Definition command.h:57
const char *const target_file_system_kinds[]
Definition filesystem.c:28
static void show_target_file_system_kind_command(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
Definition filesystem.c:61
const char file_system_kind_unix[]
Definition filesystem.c:26
const char * target_lbasename(const char *kind, const char *name)
Definition filesystem.c:52
const char file_system_kind_dos_based[]
Definition filesystem.c:27
const char * effective_target_file_system_kind(void)
Definition filesystem.c:38
const char file_system_kind_auto[]
Definition filesystem.c:25
const char * target_file_system_kind
Definition filesystem.c:35
void _initialize_filesystem()
Definition filesystem.c:81
int gdbarch_has_dos_based_file_system(struct gdbarch *gdbarch)
Definition gdbarch.c:4990
Definition value.h:130
void gdb_printf(struct ui_file *stream, const char *format,...)
Definition utils.c:1886