27 return os <<
"#" << slot.
id_;
39void PrintF(
const char* format, ...) {
41 va_start(arguments, format);
42 base::OS::VPrint(format, arguments);
46void PrintF(FILE* out,
const char* format, ...) {
48 va_start(arguments, format);
49 base::OS::VFPrint(out, format, arguments);
56 va_start(arguments, format);
57 base::OS::VPrint(format, arguments);
64 va_start(arguments, format);
65 base::OS::VPrint(format, arguments);
73 bool keep_going =
true;
74 fprintf(stdout,
"%s", prompt);
77 if (fgets(line_buf,
sizeof(line_buf), stdin) ==
nullptr) {
84 size_t len = strlen(line_buf);
85 if (len > 1 && line_buf[len - 2] ==
'\\' && line_buf[len - 1] ==
'\n') {
88 line_buf[len - 2] =
'\n';
89 line_buf[len - 1] = 0;
91 }
else if ((len > 0) && (line_buf[len - 1] ==
'\n')) {
101 size_t new_len =
offset + len + 1;
120std::vector<char> ReadCharsFromFile(FILE* file,
bool* exists,
bool verbose,
122 if (file ==
nullptr || fseek(file, 0, SEEK_END) != 0) {
124 base::OS::PrintError(
"Cannot read from file %s.\n",
filename);
127 return std::vector<char>();
131 ptrdiff_t size = ftell(file);
134 std::vector<char>
result(size);
135 for (ptrdiff_t
i = 0;
i < size && feof(file) == 0;) {
136 ptrdiff_t read = fread(
result.
data() +
i, 1, size -
i, file);
137 if (read != (size -
i) && ferror(file) != 0) {
140 return std::vector<char>();
148std::vector<char> ReadCharsFromFile(
const char*
filename,
bool* exists,
151 std::vector<char>
result = ReadCharsFromFile(file, exists, verbose,
filename);
156std::string VectorToString(
const std::vector<char>& chars) {
158 return std::string();
160 return std::string(chars.begin(), chars.end());
163int WriteCharsToFile(
const char* str,
int size, FILE* f) {
165 while (total < size) {
166 int write =
static_cast<int>(fwrite(str, 1, size - total, f));
179 std::vector<char>
result = ReadCharsFromFile(
filename, exists, verbose);
180 return VectorToString(
result);
183std::string
ReadFile(FILE* file,
bool* exists,
bool verbose) {
184 std::vector<char>
result = ReadCharsFromFile(file, exists, verbose,
"");
185 return VectorToString(
result);
192 base::OS::PrintError(
"Cannot open file %s for writing.\n",
filename);
196 int written = WriteCharsToFile(str, size, f);
203 const char* str =
reinterpret_cast<const char*
>(bytes);
224 return reinterpret_cast<uintptr_t
>(_AddressOfReturnAddress());
226 return reinterpret_cast<uintptr_t
>(__builtin_frame_address(0));
240 if (filter.empty())
return name.empty();
241 auto filter_it = filter.begin();
242 bool positive_filter =
true;
243 if (*filter_it ==
'-') {
245 positive_filter =
false;
247 if (filter_it == filter.end())
return !name.empty();
248 if (*filter_it ==
'*')
return positive_filter;
249 if (*filter_it ==
'~')
return !positive_filter;
251 bool prefix_match = filter[filter.size() - 1] ==
'*';
252 size_t min_match_length = filter.size();
253 if (!positive_filter) min_match_length--;
254 if (prefix_match) min_match_length--;
256 if (name.size() < min_match_length)
return !positive_filter;
260 auto res = std::mismatch(filter_it, filter.end(), name.begin());
261 if (res.first == filter.end()) {
262 if (res.second == name.end()) {
264 return positive_filter;
268 return !positive_filter;
270 if (*res.first ==
'*') {
273 return positive_filter;
276 return !positive_filter;
static FILE * FOpen(const char *path, const char *mode)
static int GetCurrentProcessId()
ZoneVector< RpoNumber > & result
void DeleteArray(T *array)
int WriteBytes(const char *filename, const uint8_t *bytes, int size, bool verbose)
void PrintPID(const char *format,...)
size_t hash_value(AtomicMemoryOrder order)
void PrintF(const char *format,...)
char * ReadLine(const char *prompt)
bool DoubleToBoolean(double d)
std::ostream & operator<<(std::ostream &os, AtomicMemoryOrder order)
int WriteChars(const char *filename, const char *str, int size, bool verbose)
uintptr_t GetCurrentStackPosition()
bool PassesFilter(base::Vector< const char > name, base::Vector< const char > filter)
void PrintIsolate(void *isolate, const char *format,...)
T * NewArray(size_t size)
std::string ReadFile(const char *filename, bool *exists, bool verbose)
#define DCHECK_NOT_NULL(val)
struct v8::internal::IeeeDoubleBigEndianArchType::@33 bits