OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/v8_inspector/V8StackTraceImpl.h" | 5 #include "platform/v8_inspector/V8StackTraceImpl.h" |
6 | 6 |
7 #include "platform/v8_inspector/V8Debugger.h" | 7 #include "platform/v8_inspector/V8Debugger.h" |
8 #include "platform/v8_inspector/V8StringUtil.h" | 8 #include "platform/v8_inspector/V8StringUtil.h" |
9 | 9 |
10 #include <v8-debug.h> | 10 #include <v8-debug.h> |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 , m_description(description) | 178 , m_description(description) |
179 , m_parent(std::move(parent)) | 179 , m_parent(std::move(parent)) |
180 { | 180 { |
181 m_frames.swap(frames); | 181 m_frames.swap(frames); |
182 } | 182 } |
183 | 183 |
184 V8StackTraceImpl::~V8StackTraceImpl() | 184 V8StackTraceImpl::~V8StackTraceImpl() |
185 { | 185 { |
186 } | 186 } |
187 | 187 |
188 String16 V8StackTraceImpl::topSourceURL() const | 188 StringView V8StackTraceImpl::topSourceURL() const |
189 { | 189 { |
190 DCHECK(m_frames.size()); | 190 DCHECK(m_frames.size()); |
191 return m_frames[0].m_scriptName; | 191 return toStringView(m_frames[0].m_scriptName); |
192 } | 192 } |
193 | 193 |
194 int V8StackTraceImpl::topLineNumber() const | 194 int V8StackTraceImpl::topLineNumber() const |
195 { | 195 { |
196 DCHECK(m_frames.size()); | 196 DCHECK(m_frames.size()); |
197 return m_frames[0].m_lineNumber; | 197 return m_frames[0].m_lineNumber; |
198 } | 198 } |
199 | 199 |
200 int V8StackTraceImpl::topColumnNumber() const | 200 int V8StackTraceImpl::topColumnNumber() const |
201 { | 201 { |
202 DCHECK(m_frames.size()); | 202 DCHECK(m_frames.size()); |
203 return m_frames[0].m_columnNumber; | 203 return m_frames[0].m_columnNumber; |
204 } | 204 } |
205 | 205 |
206 String16 V8StackTraceImpl::topFunctionName() const | 206 StringView V8StackTraceImpl::topFunctionName() const |
207 { | 207 { |
208 DCHECK(m_frames.size()); | 208 DCHECK(m_frames.size()); |
209 return m_frames[0].m_functionName; | 209 return toStringView(m_frames[0].m_functionName); |
210 } | 210 } |
211 | 211 |
212 String16 V8StackTraceImpl::topScriptId() const | 212 StringView V8StackTraceImpl::topScriptId() const |
213 { | 213 { |
214 DCHECK(m_frames.size()); | 214 DCHECK(m_frames.size()); |
215 return m_frames[0].m_scriptId; | 215 return toStringView(m_frames[0].m_scriptId); |
216 } | 216 } |
217 | 217 |
218 std::unique_ptr<protocol::Runtime::StackTrace> V8StackTraceImpl::buildInspectorO
bjectImpl() const | 218 std::unique_ptr<protocol::Runtime::StackTrace> V8StackTraceImpl::buildInspectorO
bjectImpl() const |
219 { | 219 { |
220 std::unique_ptr<protocol::Array<protocol::Runtime::CallFrame>> frames = prot
ocol::Array<protocol::Runtime::CallFrame>::create(); | 220 std::unique_ptr<protocol::Array<protocol::Runtime::CallFrame>> frames = prot
ocol::Array<protocol::Runtime::CallFrame>::create(); |
221 for (size_t i = 0; i < m_frames.size(); i++) | 221 for (size_t i = 0; i < m_frames.size(); i++) |
222 frames->addItem(m_frames.at(i).buildInspectorObject()); | 222 frames->addItem(m_frames.at(i).buildInspectorObject()); |
223 | 223 |
224 std::unique_ptr<protocol::Runtime::StackTrace> stackTrace = protocol::Runtim
e::StackTrace::create() | 224 std::unique_ptr<protocol::Runtime::StackTrace> stackTrace = protocol::Runtim
e::StackTrace::create() |
225 .setCallFrames(std::move(frames)).build(); | 225 .setCallFrames(std::move(frames)).build(); |
(...skipping 12 matching lines...) Expand all Loading... |
238 if (!fullChain || !fullChain->m_parent) | 238 if (!fullChain || !fullChain->m_parent) |
239 return nullptr; | 239 return nullptr; |
240 return fullChain->m_parent->buildInspectorObjectImpl(); | 240 return fullChain->m_parent->buildInspectorObjectImpl(); |
241 } | 241 } |
242 | 242 |
243 std::unique_ptr<protocol::Runtime::API::StackTrace> V8StackTraceImpl::buildInspe
ctorObject() const | 243 std::unique_ptr<protocol::Runtime::API::StackTrace> V8StackTraceImpl::buildInspe
ctorObject() const |
244 { | 244 { |
245 return buildInspectorObjectImpl(); | 245 return buildInspectorObjectImpl(); |
246 } | 246 } |
247 | 247 |
248 String16 V8StackTraceImpl::toString() const | 248 std::unique_ptr<StringBuffer> V8StackTraceImpl::toString() const |
249 { | 249 { |
250 String16Builder stackTrace; | 250 String16Builder stackTrace; |
251 for (size_t i = 0; i < m_frames.size(); ++i) { | 251 for (size_t i = 0; i < m_frames.size(); ++i) { |
252 const Frame& frame = m_frames[i]; | 252 const Frame& frame = m_frames[i]; |
253 stackTrace.append("\n at " + (frame.functionName().length() ? frame.f
unctionName() : "(anonymous function)")); | 253 stackTrace.append("\n at " + (frame.functionName().length() ? frame.f
unctionName() : "(anonymous function)")); |
254 stackTrace.append(" ("); | 254 stackTrace.append(" ("); |
255 stackTrace.append(frame.sourceURL()); | 255 stackTrace.append(frame.sourceURL()); |
256 stackTrace.append(':'); | 256 stackTrace.append(':'); |
257 stackTrace.append(String16::fromInteger(frame.lineNumber())); | 257 stackTrace.append(String16::fromInteger(frame.lineNumber())); |
258 stackTrace.append(':'); | 258 stackTrace.append(':'); |
259 stackTrace.append(String16::fromInteger(frame.columnNumber())); | 259 stackTrace.append(String16::fromInteger(frame.columnNumber())); |
260 stackTrace.append(')'); | 260 stackTrace.append(')'); |
261 } | 261 } |
262 return stackTrace.toString(); | 262 String16 string = stackTrace.toString(); |
| 263 return StringBufferImpl::adopt(string); |
263 } | 264 } |
264 | 265 |
265 } // namespace v8_inspector | 266 } // namespace v8_inspector |
OLD | NEW |