extra: Remove dbg module and rt support code
This stuff is ancient, unused, and tied to oldsched
This commit is contained in:
parent
ef87e2cc96
commit
05eff5f731
@ -1,80 +0,0 @@
|
||||
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//! Unsafe debugging functions for inspecting values.
|
||||
|
||||
#[allow(missing_doc)];
|
||||
|
||||
use std::cast::transmute;
|
||||
use std::unstable::intrinsics::{get_tydesc};
|
||||
|
||||
pub mod rustrt {
|
||||
use std::unstable::intrinsics::{TyDesc};
|
||||
|
||||
#[abi = "cdecl"]
|
||||
extern {
|
||||
pub unsafe fn debug_tydesc(td: *TyDesc);
|
||||
pub unsafe fn debug_opaque(td: *TyDesc, x: *());
|
||||
pub unsafe fn debug_box(td: *TyDesc, x: *());
|
||||
pub unsafe fn debug_tag(td: *TyDesc, x: *());
|
||||
pub unsafe fn debug_fn(td: *TyDesc, x: *());
|
||||
pub unsafe fn debug_ptrcast(td: *TyDesc, x: *()) -> *();
|
||||
pub unsafe fn rust_dbg_breakpoint();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn debug_tydesc<T>() {
|
||||
unsafe {
|
||||
rustrt::debug_tydesc(get_tydesc::<T>());
|
||||
}
|
||||
}
|
||||
|
||||
pub fn debug_opaque<T>(x: T) {
|
||||
unsafe {
|
||||
rustrt::debug_opaque(get_tydesc::<T>(), transmute(&x));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn debug_box<T>(x: @T) {
|
||||
unsafe {
|
||||
rustrt::debug_box(get_tydesc::<T>(), transmute(&x));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn debug_tag<T>(x: T) {
|
||||
unsafe {
|
||||
rustrt::debug_tag(get_tydesc::<T>(), transmute(&x));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn debug_fn<T>(x: T) {
|
||||
unsafe {
|
||||
rustrt::debug_fn(get_tydesc::<T>(), transmute(&x));
|
||||
}
|
||||
}
|
||||
|
||||
pub unsafe fn ptr_cast<T, U>(x: @T) -> @U {
|
||||
transmute(
|
||||
rustrt::debug_ptrcast(get_tydesc::<T>(), transmute(x)))
|
||||
}
|
||||
|
||||
/// Triggers a debugger breakpoint
|
||||
pub fn breakpoint() {
|
||||
unsafe {
|
||||
rustrt::rust_dbg_breakpoint();
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_breakpoint_should_not_abort_process_when_not_under_gdb() {
|
||||
// Triggering a breakpoint involves raising SIGTRAP, which terminates
|
||||
// the process under normal circumstances
|
||||
breakpoint();
|
||||
}
|
@ -78,7 +78,6 @@ pub mod sha2;
|
||||
|
||||
pub mod url;
|
||||
pub mod ebml;
|
||||
pub mod dbg;
|
||||
pub mod getopts;
|
||||
pub mod json;
|
||||
pub mod md4;
|
||||
|
@ -41,8 +41,6 @@ pub mod rustrt {
|
||||
|
||||
#[rust_stack]
|
||||
pub fn rust_try_get_task() -> *rust_task;
|
||||
|
||||
pub fn rust_dbg_breakpoint();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -150,93 +150,6 @@ debug_static_mut_check_four() {
|
||||
assert(debug_static_mut == 4);
|
||||
}
|
||||
|
||||
/* Debug builtins for std::dbg. */
|
||||
|
||||
static void
|
||||
debug_tydesc_helper(type_desc *t)
|
||||
{
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, " size %" PRIdPTR ", align %" PRIdPTR,
|
||||
t->size, t->align);
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
debug_tydesc(type_desc *t) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, "debug_tydesc");
|
||||
debug_tydesc_helper(t);
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
debug_opaque(type_desc *t, uint8_t *front) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, "debug_opaque");
|
||||
debug_tydesc_helper(t);
|
||||
// Account for alignment. `front` may not indeed be the
|
||||
// front byte of the passed-in argument
|
||||
if (((uintptr_t)front % t->align) != 0) {
|
||||
front = (uint8_t *)align_to((uintptr_t)front, (size_t)t->align);
|
||||
}
|
||||
for (uintptr_t i = 0; i < t->size; ++front, ++i) {
|
||||
LOG(task, stdlib, " byte %" PRIdPTR ": 0x%" PRIx8, i, *front);
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
debug_box(type_desc *t, rust_opaque_box *box) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, "debug_box(0x%" PRIxPTR ")", box);
|
||||
debug_tydesc_helper(t);
|
||||
LOG(task, stdlib, " refcount %" PRIdPTR,
|
||||
box->ref_count - 1); // -1 because we ref'ed for this call
|
||||
uint8_t *data = (uint8_t *)box_body(box);
|
||||
for (uintptr_t i = 0; i < t->size; ++i) {
|
||||
LOG(task, stdlib, " byte %" PRIdPTR ": 0x%" PRIx8, i, data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
struct rust_tag {
|
||||
uintptr_t discriminant;
|
||||
uint8_t variant[];
|
||||
};
|
||||
|
||||
extern "C" CDECL void
|
||||
debug_tag(type_desc *t, rust_tag *tag) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
|
||||
LOG(task, stdlib, "debug_tag");
|
||||
debug_tydesc_helper(t);
|
||||
LOG(task, stdlib, " discriminant %" PRIdPTR, tag->discriminant);
|
||||
|
||||
for (uintptr_t i = 0; i < t->size - sizeof(tag->discriminant); ++i)
|
||||
LOG(task, stdlib, " byte %" PRIdPTR ": 0x%" PRIx8, i,
|
||||
tag->variant[i]);
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
debug_fn(type_desc *t, fn_env_pair *fn) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, "debug_fn");
|
||||
debug_tydesc_helper(t);
|
||||
LOG(task, stdlib, " fn at 0x%" PRIxPTR, fn->f);
|
||||
LOG(task, stdlib, " env at 0x%" PRIxPTR, fn->env);
|
||||
if (fn->env) {
|
||||
LOG(task, stdlib, " refcount %" PRIdPTR, fn->env->ref_count);
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" CDECL void *
|
||||
debug_ptrcast(type_desc *from_ty,
|
||||
type_desc *to_ty,
|
||||
void *ptr) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG(task, stdlib, "debug_ptrcast from");
|
||||
debug_tydesc_helper(from_ty);
|
||||
LOG(task, stdlib, "to");
|
||||
debug_tydesc_helper(to_ty);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
extern "C" CDECL void *
|
||||
debug_get_stk_seg() {
|
||||
rust_task *task = rust_get_current_task();
|
||||
@ -583,11 +496,6 @@ rust_should_log_console() {
|
||||
return (uintptr_t)should_log_console();
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
rust_dbg_breakpoint() {
|
||||
BREAKPOINT_AWESOME;
|
||||
}
|
||||
|
||||
extern "C" CDECL rust_sched_id
|
||||
rust_osmain_sched_id() {
|
||||
rust_task *task = rust_get_current_task();
|
||||
|
@ -17,19 +17,6 @@
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
#include <signal.h>
|
||||
#define BREAKPOINT_AWESOME \
|
||||
do { \
|
||||
signal(SIGTRAP, SIG_IGN); \
|
||||
raise(SIGTRAP); \
|
||||
} while (0)
|
||||
|
||||
#else
|
||||
#define BREAKPOINT_AWESOME
|
||||
#endif
|
||||
|
||||
struct rust_task;
|
||||
|
||||
namespace debug {
|
||||
|
@ -1,9 +1,3 @@
|
||||
debug_box
|
||||
debug_fn
|
||||
debug_opaque
|
||||
debug_ptrcast
|
||||
debug_tag
|
||||
debug_tydesc
|
||||
debug_get_stk_seg
|
||||
debug_abi_1
|
||||
debug_abi_2
|
||||
@ -178,7 +172,6 @@ rust_dbg_lock_wait
|
||||
rust_dbg_lock_signal
|
||||
rust_dbg_call
|
||||
rust_dbg_do_nothing
|
||||
rust_dbg_breakpoint
|
||||
rust_osmain_sched_id
|
||||
rust_task_inhibit_kill
|
||||
rust_task_allow_kill
|
||||
|
Loading…
x
Reference in New Issue
Block a user