text:
Configuration of a debugger that saves resources and debugs on a target system rather than from a host system. The target system stores a table with global variables and addresses, and a module table with system-wide functions and addresses. In response to a trigger, a debugger module is loaded from the host system and linked to the target system by causing the debugger module to exchange information with the tables. The debugger module uses the table to find a variable address and sets a pointer to the address. The debugger module provides the table with a local name and address of a variable local to the debugger module. The debugger module uses the module table to find an MT address of a function and sets a pointer to the MT address. The debugger module provides the module table with an MT address of a function local to the debugger module.
1. In a computer system including a host system functionally connected to a target system, a method for configuring a debugger system that saves resources of the target system, and yet allows for debugging operations to be conducted on the target system rather than from the host system, the method comprising:
storing a global variable table at the target system with the global variable table including at least an entry and with each entry respectively including a name of a system-wide global variable and an address for the system-wide global variable;
storing a module table at the target system with the module table including at least a module table entry (MT entry) with each MT entry respectively identifying a system-wide function and a module table address (MT address) for the system-wide function;
creating a respective debugger module for each debugging feature included in the debugger system;
storing at least a debugger module of the debugger system in the host system;
in response to a trigger, loading a debugger module from the host system to the target system; and
linking the debugger module for the debugging operations on the target system
by causing the debugger module to exchange information with the global variable table, and
by causing the debugger module to exchange function information with the module table,
whereby the storing at the host system of the debugger modules not in use at the target system saves the resources of the target system, and
whereby the loading and linking of the debugger module to the target system in response to the trigger allows for the debugging operations to be conducted on the target system rather than from the host system and also saves the resources of the target system by minimizing the resources of the target system taken up by the debugger system.
2. The method of
causing the debugger module to use the global variable table to find a particular address of a particular system-wide global variable;
causing the debugger module to set a pointer to the particular address for accessing the particular system-wide global variable by the debugger module; and
causing the debugger module to provide the global variable table with at least a local name and a local address of a global variable local to the debugger module so that the global variable local to the debugger module becomes accessible to other components of the target system.
3. The method of
causing the debugger module to use the module table to find a particular MT address of a particular system-wide function;
causing the debugger module to set a pointer to the particular MT address for accessing the particular system-wide function by the debugger module; and
causing the debugger module to provide the module table with at least a local function and a local MT address of a system-wide function local to the debugger module so that the system-wide function local to the debugger module becomes accessible to other components of the target system.
4. The method of
causing the global variable table and the module table to be accessible to components linked to the target system with the components including linked debugging modules.
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
after the debugging operations on the target system, removing the debugger module from the target system to the host system.
10. The method of
11. The method of
after the debugging operations on the target system, causing the debugger module to send results of the debugging operations over the communication interface to the host system.
12. A method for configuring a debugger system in a system, the method comprising:
storing a table at the system with the table including at least an entry and with each entry respectively including a name of a variable and an address for the variable;
storing a module table at the system with the module table including at least a module table entry (MT entry) with each MT entry respectively identifying a function and a module table address (MT address) for the function; and
linking a debugger module including at least a debugger feature of the debugger system to the system
by causing the debugger module to exchange information with the table, and
by causing the debugger module to exchange function information with the module table.
13. The method of
causing the debugger module to use the table to find a particular address of a particular variable,
causing the debugger module to set a pointer to the particular address for accessing the particular variable by the debugger module, and
causing the debugger module to provide the table with at least a local name and a local address of a variable local to the debugger module.
14. The method of
causing the debugger module to use the module table to find a particular MT address of a particular function;
causing the debugger module to set a pointer to the particular MT address for accessing the particular function by the debugger module; and
causing the debugger module to provide the module table with at least a local function and a local MT address of a function local to the debugger module, so that the function local to the debugger module becomes accessible to other components of the system.
15. The method of
wherein causing the debugger module to provide the module table with at least the local function and the local MT address of the function local to the debugger allows the function local to the debugger module to be accessible to the other components of the system.
16. The method of
17. The method of
causing the debugger module to include a breakpoint support routine and a breakpoint table including at least an entry of a breakpoint address and a corresponding thread identifier (ID);
detecting a breakpoint having the breakpoint address in a running thread of the system;
in response to the detection, interrupting operation of the running thread and causing the breakpoint support routine to be invoked;
in response to being invoked, causing the breakpoint support routine to use a thread ID of the running thread to check the breakpoint table; and
if the thread ID of the running thread matches the corresponding thread ID, then causing control of the operation of the running thread to pass away from the system.
18. The method of
if the thread ID of the running thread fails to match the corresponding thread ID, then returning control of the operation to the running thread.
19. In a computer system including a host system functionally connected to a target system with running threads and with at least one of the running threads including a breakpoint, a method for debugging based on breakpoints that a breakpoint set with respect to a running thread effects only the running thread and not other threads running on the target system, the method comprising:
causing a debugger module to include a breakpoint support routine and a breakpoint table including at least an entry of a breakpoint address and a corresponding thread identifier (ID); linking the debugger module including the breakpoint support routine and the breakpoint table to the target system;
in response to detection of a breakpoint having the breakpoint address in a running thread of the target system, interrupting operation of the running thread and causing the breakpoint support routine to be invoked;
in response to being invoked, causing the breakpoint support routine to use a thread ID of the running thread to check a breakpoint table; and
if the thread ID of the running thread matches the corresponding thread ID, then causing control of the operation of the running thread to pass to the host system.
20. The method of
if the thread ID of the running thread fails to match the corresponding thread ID, then returning control of the operation to the running thread.
[0001] This application claims priority to and the benefit of the prior filed co-pending and commonly owned patent application, which has been assigned U.S. patent application Ser. No. 60/329.861, which is entitled "A Dynamically Instantiated Real-Time Operating System Debugger," filed on Oct. 17, 2001, and which is incorporated herein by this reference.
[0002] The inventions relate to the debugging of application programs running on an operating system (OS), and particularly relate to the configuration of debugging systems.
[0003] Software debugging methodologies differ according to the hardware platform intended for application development. For general purpose computing, debugging of an application can be done by using sophisticated debugger tools. These tools help the software engineer both to specify the location of the error and to remove the error from the application by providing features such as single stepping, breakpoint setting, and register/memory display. The debugger tool runs on the same hardware platform as the application being debugged and is completely separate from the application, so that the debugger is installed on the system at a different time than the application program (most probably prior to the installation of the application program). Debugging in such a platform makes use of available input/output devices, such as a display terminal and a keyboard, so that the user can easily interact with the software being debugged.
[0004] Debugging of embedded applications is typically performed in a different way than debugging is performed for general purpose computing. First of all, the platform on which the software is written, usually a host computer with input/output devices, is usually different than the platform on which the software will eventually be running: the target embedded system. Although the earlier stages of software development can be accomplished on the host computer, the final code development has to be done on the target embedded system in order to be able to capture the errors related to the target platform, such as an error which only occurs during collecting samples from an attached sensor in the embedded system. However, embedded systems are usually limited in terms of observability which can be defined as the information that can be gathered from such systems. This is due to the high-integration level of embedded systems which makes it very hard to directly connect input/output devices to the embedded system internals to send/retrieve information to/from them. For instance, it is very hard to get information about every signal that is occurring within a System-on-a-Chip device which has multiple processors and lots of custom logic inside. This is because the number of external pins of such a device is limited.
[0005] A second difference in the way embedded software is debugged comes from a property of embedded software itself. Because of the intended environment for which embedded systems are designed, the applications that run on embedded systems are usually real-time applications that require real-time constraints to be satisfied during their operation. As an example, an embedded system that controls the brake system of an automobile should certainly operate within real-time constraints. Consequently, embedded applications are usually implemented using an operating system and preferably a real-time operating system (RTOS) that provides the coordination between the tasks of the real-time applications running on the embedded system. Therefore, the timeliness of debugging information is as important as the amount of debugging information that can be gathered from an embedded system.
[0006] There are different methods followed to debug embedded systems. These methods can be divided into to categories: (1) hardware approaches; and (2) software approaches.
[0007] Poret et al. describe a hardware approach in U.S. Pat. No. 4,674,089 entitled "In-circuit emulator." An in-circuit emulator (ICE) is a hardware unit that contains a support for real-time event detection, real-time tracing, and memory emulation. An ICE consists of an emulator probe, which is physically and functionally equivalent to the target processor that runs the embedded software. The probe, however, consists of a bond-out version of the processor. In a bond-out version of a processor the internal signals are reachable from outside. By using these pins, the internal signals can be captured and interpreted in real-time. The problem with. ICEs, however, is that they lag processor production time and become useless as the latest available processor version changes. Furthermore, ICEs are usually very expensive.
[0008] Somasundaram et al. describe an on-chip debugger support in U.S. Pat. No. 5,491,793 entitled "Debug Support in a Processor Chip." In this method, the whole debugger software runs on a separate host computer and communicates with the target processor that runs the embedded software using some external pins of the processor. The internal debug logic of the processor provides a hardware support for real-time tracing and trapping of instructions being executed on the target processor. In similar implementations with some latest processors (e.g., MIPS32, MPC860 and ARM9), which have on-chip debug support, the communication link between the host computer and the processor is established via a Joint Test Action Group (JTAG) or Background Debug Mode (BDM) interface. These processors support a set of dedicated pins (connected to the internal debugging logic) by which a debugger program running on the host computer can observe some internal signals of these processors and extract debug information from the interpretation of those signals.
[0009] Roy et al. describe another hardware approach in U.S. Pat. No. 6,321,331 entitled "Real time debugger interface for embedded systems." In this approach, two decoders are coupled to the instruction memory, the instruction counter, and the cause register of the sequencer of the processor. A three-bit real time output from the decoders indicating processor activity (e.g., an exception has occurred and a branch is taken) is recorded on a trace buffer that is also implemented in hardware. By combining the three-bit status information with the information about the instructions of the software, execution of the software can be traced in real-time.
[0010] As these embedded system debugging methods show, the requirement of retrieval of debugging information in time from an embedded system can be satisfied using some form of hardware assistance in the embedded system. Hardware usage, however, brings extra cost and inflexibility. Also, the amount of information that can be obtained using fixed hardware is also fixed.
[0011] Another approach that can be followed is the software approach where the debugging information can be gathered by using debugging agents within the embedded software that is being debugged. These agents are small pieces of code that can either send the necessary information from the embedded platform to the host computer using the communication link in-between, or that can store the debugging information locally to be retrieved afterwards. Since software is used to retrieve the debugging information, there is some effect on the timing of the embedded application. With well-written debugging agents, however, this effect can be kept within acceptable limits.
[0012] Rees et al. describe a software debugging approach in U.S. Pat. No. 6,161,200 entitled "Method and apparatus for analyzing software executed in embedded systems." In this approach, software is instrumented with tag statements that are executed on the target. Tags write information to a predefined address on the processor address space that is monitored by probes attached to the system bus of the processor and provide debugging information such as function and task execution times, memory allocation, call pairs, and program tracing. Once software is instrumented with tags and is compiled, however, the information that the tags can provide becomes fixed until the tags are changed and the code is recompiled and re-executed. The recompilation requirement overshadows the flexibility advantage of software over hardware as recompilation may increase debugging time considerably.
[0013] Mulchandani et al. disclose another software approach in U.S. Pat. No. 5,689,684 entitled "Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity." In this approach, some amount of flexibility is provided with the help of software implementation where the host debugger can adapt to the target system according to the target processor identity dynamically. Therefore, as opposed to hardware approaches such as using ICEs, the target platform can be debugged independently of the processor type or version. This approach, however, still does not provide any flexibility in terms of debugging functionality that can be modified dynamically.
[0014] At least equally important when using a software approach is that there is an extra challenge for debugging embedded software due to scarce resources on the embedded system. It is a luxury to run a debugger agent on an embedded system with application programs and possibly with an operating system (OS). The debugger agent eats up memory on the embedded system leaving less memory space for the application programs and the OS. For example, for a handheld device which runs an application for decoding and playing back compressed movies streamed from a server, considerable amount of memory may be needed for buffering the compressed movie before decompressing and playing it back. It is important to be able to debug such a multi-media application while the application is running on the handheld device without significant consumption of additional memory which is needed for buffering the multimedia data.
[0015] One solution to the memory problem is isolating the debugging agent from the applications on the target and placing the debugging agent in a separate memory module just for the software development stage. The embedded system debugging method using a so-called "debug monitor" fits into this category. A debug monitor is a small debugging agent that is burned on read-only memory (ROM) in the target platform. Once a ROM is added to the target platform, however, it is hard to remove the ROM, so the added ROM is usually kept in the final product at an additional cost. Moreover, since the ROM memory reserved for the debug monitor is usually kept small for cost reduction, the debugging functionality that can be obtained by using a debug monitor is limited.
[0016] Therefore, it is desirable to find an efficient and flexible mechanism which provides debugging of embedded software without consuming significant additional amounts of memory of the target platform and without requiring any dedicated debugging hardware and yet provides detailed and timely debugging information about the internals of the target platform.
[0017] The inventions provide a debugging system that saves resources of the system on which it operates. The debugging system is made up of debugging modules that may be dynamically and incrementally loaded and linked to the system to be debugged. When the inventions are used in a computer system including a host system connected to a target system, the inventions save the resources of the target system and yet allow for the debugging operations to be conducted on the target system rather than the host system. An exemplary embodiment of the inventions presents an operating system (OS) based debugging methodology for embedded systems in which the debugger is a dynamically and incrementally loadable set of modules of the operating system. For this reason, the methodology is named as Debugger OS.
[0018] Each debugger module is written to provide a specific debugging feature. Each feature can be a non-real-time functionality such as breakpoint or single stepping support that is especially useful in the earlier stages of software development, or can be a real-time functionality such as dynamic variable query or dynamic program tracing without halting application program execution. Dynamically loading a new debugger module adds to the target system a new debugging feature that is provided by the module. Since debugger modules are dynamically loaded, the modules do not consume target embedded system memory resource while not in a debugging session. In other words, debugger modules are loaded into the target system memory and are executed only when they are needed for debugging purposes. Furthermore, the information obtained by the debugger modules can be directly sent from the embedded platform to a host computer via a communication interface. In this way, the need for the memory space on the target platform for the storage of the debugging data can be reduced or eliminated. There is also a flexibility brought by dynamically loadable debugger modules: new debugger modules that provide additional debugging functionality can be designed and integrated to the system at any point in time.
[0019] Debugger modules that run on the target system provide detailed state information about target system internals. As the debugger modules run on the target platform rather than on a host computer, it is possible to collect information about the internals of the target system no matter how deeply embedded the target platform is. One example of this detailed system information is the register state of a processor. In a processor without a dedicated monitoring and debugging logic inside, register state cannot be observed via external pins of the processor directly. Therefore, a debugger tool that monitors signals on the external pins of the processor cannot obtain information about the register state of the processor. Since the Debugger OS modules run on the processor itself, these modules can obtain register state information by executing specific instructions of the processor. Then, the register state information can be sent to or monitored from the user interface running on the host computer via the communication interface between the target processor and the host computer.
[0020] Another advantage of OS modules comes with the concept of OS-aware debugging. OS-awareness is debugging software code based on an operating system thread or an operating system process, rather than on a procedure in the programming language. OS modules can have complete access to OS internals such as task control blocks (TCBs), the ready task table, semaphores and mailbox structures. Access to these OS internals allows the Debugger OS to have a wider control over the system and, thus, to provide more detailed information in case of a failure condition. Therefore, the Debugger OS modules are able to differentiate between the operating system threads or processes by using the detailed state information about the OS internals. Conventional debuggers fail in multi-threaded environments where there is no way to differentiate between threads. Thus, for instance, a breakpoint set on one thread or a process affects all instances of the thread code.
[0021] Incremental debugger module loading provides the user with the ability to load only the debugger modules that are needed for requested debugging features. Any undesired modules can be unloaded anytime during debugging; this further helps provide efficient memory usage in the system.
[0022]FIG. 1 illustrates an exemplary environment for the inventions of a host system and a target system.
[0023]FIG. 2 is a flow chart showing exemplary actions of dynamic module loading and linking.
[0024]FIG. 3 illustrates structure of an exemplary debugger module and exemplary memory organization of the target memory in the system model.
[0025]FIG. 4 shows an exemplary global variable table and an exemplary module table.
[0026]FIG. 5 illustrates exemplary circumstances that may lead to loading of a debugger module.
[0027]FIG. 6 illustrates an exemplary embodiment of the invention where an application code is instrumented to catch integer divide-by-zero error and to trigger a dynamic addition of a custom-made debugger module into the system.
[0028]FIG. 7 shows an exemplary display on a user interface that runs on a host computer in an exemplary embodiment of the invention with the divide-by-zero error detection.
[0029]FIG. 8 illustrates an exemplary display on a user interface of the debugging information that may be provided by an exemplary debugger module in the divide-by-zero error detection example.
[0030]FIG. 9 is a schematic illustrating exemplary structure of on-chip hardware support for breakpoints.
[0031]FIG. 10 illustrates exemplary functionality of a debugger module as used in an embodiment of the invention for OS-aware breakpoint support.
[0032] Several embodiments of the inventions are described below in detail. The disclosed embodiments are intended to be illustrative only since numerous modifications and variations therein will be apparent to those of ordinary skill in the art. In reference to the drawings, like numbers will indicate like parts continuously throughout the views. As utilized in the description herein and throughout the claims that follow, the meaning of "a," "an," and "the" include plural references also, unless the context of use clearly dictates otherwise. Additionally, the meaning of "in" includes "in" and "on" unless the context clearly dictates otherwise as the term is utilized in the description herein and throughout the claims that follow.
[0033] An exemplary debugging platform for Debugger OS applications is shown in FIG. 1. The Debugger OS 116 (such as one or more debugger modules of a debugger system) and the application(s) 114 reside in the memory 112 installed on the target system 106. Advantageously, the debugger software of the debugger modules is completely inside the OS code and runs on the target processor(s) 110.
[0034] The host computer 104, on the other hand, runs the user interface 100. The communication between the host system and the target system may be established by any suitable wired or wireless communication interface 108. This interface is preferably chosen so as to provide high bandwidth data transfer capability if real-time debugging is desired. For the least amount of disturbance on the real-time behavior of the running applications on the target, the communication interface can be established by probing the address and data busses of the target processor and reading the signals on these busses to obtain the necessary information from the target as long as these busses are reachable for probing. If no such interface is available, then a small temporary buffer can be reserved in the memory 112 at the target platform for storing the debugging data and a task can be assigned in the OS to send the stored data to the host computer periodically or whenever the load of the system decreases. The size of the buffer can be adjusted according to the communication bandwidth so that it is almost fully utilized without overflow. To do this, the buffer fill level can be fed back to the OS to adjust the scheduling parameters for the task that is sending debugging information to the host computer. By leaving the control of debugging information transfer to the OS, the disturbance on the real-time operation of the application(s) running on the target platform is minimized with minimal memory consumption.
[0035] In the exemplary embodiment, software debugging features are distributed between and among distinct debugger modules that are compiled independently from each other. The user can select the necessary modules corresponding to the desired debugging features at compile time. In addition to compile time selection, each module is a dynamically loadable and linkable part of the OS. Advantageously, when a debugger module is needed at runtime for extra debugging features, that module can be added to the system without the requirement of application or OS recompilation or a reboot.
[0036] The loading and the linking processes of the debugger modules at run-time are handled by application programming interface (API) functions. API functions take as a parameter the module name to be loaded and linked to the system. Exemplary actions that may be followed by the API functions are shown in FIG. 2.
[0037] Exemplary action 200 of the loading and linking mechanism as illustrated in FIG. 2 is illustrated in further detail in FIG. 3. FIG. 3 shows exemplary module structure and exemplary memory organization of the target memory in the system model. Exemplary action 200 of the loading linking mechanism allocates a memory space from the memory of the target system 302, and loads the pre-compiled debugger module 300 into this memory location. The place to which debugger module is loaded may be a free memory block in the heap section 304 of the memory. If there is no such block available in which to fit the debugger module, the system looks for any other modules that have been unlinked from the OS, but that are still in the memory. This can be done provided that the option which keeps the unlinked modules in the memory until their de-allocated space is re-allocated for another purpose is enabled in the system. If the required memory space is satisfied by the previously allocated memory for those unlinked modules, the system uses the memory space of such modules. If enough memory cannot be obtained in this way, the system asks the user to choose among the already loaded and active debugger module(s) (i.e., the modules that are linked to the OS) the one(s) to be replaced with the new module to be loaded.
[0038] Exemplary action 202 of FIG. 2 of the loading and linking mechanism is performed by using a global variable table (also known as a table) shown in FIG. 4a. A global variable table entry holds the name 400 and the address 402 of a system-wide global variable that may be referenced from within OS. A newly loaded module into the system which wants to access a system-wide global variable first searches the address of that system-wide global variable by using the symbol name of that system-wide global variable in the global variable table. After finding the address of the searched system-wide global variable, the newly loaded module initializes a pointer to the found address. Then, whenever the system-wide global variable is to be accessed, the initialized pointer is used to access that variable without requiring any more searches in the global variable table.
[0039] In addition to system-wide global variables, each loaded module may have its own global variables 308 local to that module as shown in FIG. 3. The names and the addresses of those global variables local to the debugger module are entered into the global variables table when that debugger module is linked to the OS. In this way, global variables local to a newly added debugger module to the OS are made accessible throughout the OS, and thus those global variables become a part of system-wide global variables as well.
[0040] Finally, any function or procedure within the debugger module can be referenced within the OS by using another table, module table shown in FIG. 4b. In the module table, there is a respective entry for every system-wide function or procedure within the OS. Each entry includes the symbol name of a function or procedure 404 and the address 406 in the target system memory where that function or procedure is loaded. This address is updated at action 204 of FIG. 2 of the loading and linking mechanism after the beginning address of the memory space into which a debugger module will be loaded becomes apparent. A newly loaded debugger module into the system which wants to access a system-wide function or procedure first searches the address of that system-wide function or procedure by using the symbol name of that system-wide function or procedure in the module table. After finding the address of the searched system-wide function or procedure, the newly loaded debugger module initializes a function pointer to the found address. Then, whenever the system-wide function or procedure is to be accessed, the initialized function pointer is used to access that function or procedure without requiring any more searches in the module table. Finally, when a new debugger module is to be integrated into the OS, new entries are dynamically created in the module table for every function or procedure within that debugger module.
[0041] Dynamic module loading can be done in different ways (FIG. 5). The first option is manual loading 504. In manual loading, the user can stop the debugging session and choose to add new modules 500 to the system at any time. The second option is module loading triggered by hardware exceptions 506. Hardware exceptions are instruction related interrupts caused by software trying to execute an instruction in a way not supported by the underlying hardware. Hardware exceptions are caught by the support of the underlying hardware.
[0042] A typical example of a hardware exception is an alignment exception, which is usually caused by executing a load/store instruction with misaligned operands. When a hardware exception occurs, the system selects the base debugger modules that will be helpful to understand the cause of the hardware exception and, if this option is enabled, asks the user's permission to load them into the system dynamically. At this moment, the user can confirm the load request, decline the request totally, or select among the base debugger modules the ones to be loaded into the target system. The user can also select any other expansion debugger modules to be loaded into the system at the time of the hardware exception to provide extra debugging features above the base modules. The base debugger modules for a specific kind of hardware exception are set by the user at compile time, but can be changed any time by the user. The user can also disable the permission request from the system at any time, so that at the time of a hardware exception, base modules are loaded without the user's intervention.
[0043] The last module loading option is module loading triggered by custom instrumentation code 508 added by the user either into the application program or to the OS or both. This instrumentation code can be any monitoring code that checks for the predefined conditions to be satisfied for triggering the loading of debugger modules. Assertions are good examples for the instrumentation code that can be added into the code being debugged. Assertions are linguistic constructions which allow either runtime checking or compile time checking of constraints defined in the programs. Other than the type of source that triggers module loading, module loading by code instrumentation works in the same way as in the hardware exception case with the same options given to the user before or after a module loading is triggered.
[0044] During error-free operation at runtime, the debugger modules are not typically loaded into the system provided that the user does not request any manual module loading. This prevents consumption of extra system resources by the debugging software. When the debugger modules are not loaded into the system, they are kept generally in a storage unit external to the target system. This storage unit may be the hard drive 102 of the host computer 104 shown in FIG. 1 or any other local or remote storage device that has a wired or wireless link to the system in FIG. 1. As soon as an error condition occurs (e.g., hardware rises an exception or a software assertion fires), the debugger modules are loaded from the external storage unit into the memory of the target system and are dynamically linked to the OS.
[0045] If a module is no longer needed, it can be removed from the system easily. To do this, an exemplary embodiment of the inventions first makes sure that the module is not currently running in the system. If the module is running, the system waits until the module finishes its execution. After that, the module is marked as discardable, which distinguishes it from the rest of the active modules (i.e., those that are linked to the OS) and ensures that it cannot be called from within the OS. Finally, the memory space allocated for the module is released. However, as an option, the module may be kept in the memory until the released memory space that was allocated for the module is actually used for some other purpose. In this way, if the module is ever needed again, the module can be made active very quickly as it will already be in the target system memory.
[0046] An exemplary embodiment of the present inventions provides the detection of a divide-by-zero error by code instrumentation and triggering of a load operation for a debugger module. Note that some processors do not have hardware support for the detection of a divide-by-zero error, especially for the integer divide operation. Therefore, in addition to presenting an application of the inventions, this exemplary embodiment introduces a solution for this problem, too.
[0047] The instrumentation code for the detection of a divide-by-zero error is implemented in the following exemplary way. Class types of int_check, float-check and double_check are defined for all data types in the OS, which include an overloading of the division operator ("/") using the C++ language. The overloaded division operator checks the second operand of the division operation. If the second operator is found to be zero, the overloaded division operator calls the aforementioned API functions for loading and linking the custom-made debugger module. Thus, the ordinary division operator gains a functionality of checking for the divide-by-zero condition. Then, the int_check, float_check and double_check class types are mapped into the corresponding generic data types INT, FLOAT and DOUBLE, respectively. Thus, when the application programmer uses a division operator ("/") with operands of these generic data types, he or she actually uses the modified division operator which detects the divide-by-zero error condition.
[0048] The integer divide-by-zero error detection mechanism is illustrated in the diagram in FIG. 6. The generic data type INT 600 is converted into int_check class type 602 (which is defined in the OS code) during the compilation of the source code. When a divide-by-zero error condition occurs (which is checked by the int_check class type implicitly), a trap( ) 604 function is called, which in turn calls the load_module_debugger( ) 606 and init_module_debugger( ) 608 API functions that are written for taking care of the dynamic module loading and linking actions shown in FIG. 2.
[0049] In the described embodiment, an application and an implementation of Debugger OS run on a target embedded controller board and the user interface runs on a host computer with input/output devices such as a keyboard and a monitor. The host computer is connected to the target board via a high bandwidth JTAG interface (e.g., 100 KB/sec) by which debugging information can be retrieved from the target board. For this preferred embodiment, the CrossView Pro Tool from Tasking Inc. is chosen to provide the user interface and the host side drivers for the JTAG connection. The user interface can be any commercially available or custom-made software that can interpret the received signals from the communication interface. Note that JTAG interface is not used in conjunction with the available debugger logic on the target processor as mentioned in the prior art section, but just for data transfer between the host and the target. Again, as mentioned before, the communication interface can be replaced with any other suitable interface, even with a wireless connection.
[0050] The exemplary embodiment is applied with respect to three threads. However, any other application with as many threads as allowed by the installed memory on the target platform is supported by the inventions. Two threads read two different sets of floating-point voltage samples from a file record and display the waveforms on the screen. The third thread rounds the voltage values by assigning them to integer variables and computes the ratio of them by dividing one of the rounded samples by the other. When one of the divisor voltage samples is between −1 and +1, it is rounded to zero, and thus a divide-by-zero error condition occurs. A snapshot of the user interface running on the host is show in FIG. 7. Three windows are shown in the snapshot: the output window from the custom-made debugger module 700, the plot of dividend voltage samples versus time 702, and the plot of divisor voltage samples versus time 704. The magnified view of the output from the custom-made debugger module is shown in FIG. 8. The debugger module reports the error location 800, the error type 802, processor register values 804, current thread ID 806, the beginning address of the stack of current thread 808 and the states of threads in the system 810. Note that the fourth thread, of which status is shown as "ready" in the sample output, is the idle thread created by the operating system in the system initialization phase.
[0051] As seen in FIG. 8, valuable information about the OS internals can easily be obtained. The debugger module is loaded into the system only when needed, that is, when a divide-by-zero error occurs. In this way, memory overhead by the debugger module is reduced during error-free operation.
[0052] As another embodiment of the inventions, dynamic addition of OS-aware breakpoint support to the system is explained next. With OS-aware breakpoint support, it is possible to differentiate between threads, so that a breakpoint set for a single thread effects the execution only of that thread. Even if another thread runs the same code at the same physical memory location, the execution of that thread is not affected (not stopped at the breakpoint).
[0053] Conventionally, the breakpoint feature within a debugger tool is implemented at a low level. This traditional implementation relies on either hardware or software (assembly code). In case of hardware, the target processor, on which the software that is being debugged runs, contains custom logic for breakpoints. As seen in FIG. 9, this logic may include a set of registers that are called breakpoint registers 900 and a set of comparators 902. The addresses of instructions where breakpoints are set are written into the breakpoint registers. Then, the value of program counter 904 is continuously compared with the values in the breakpoint registers. If a match is found, an internal interrupt 906 is generated which stops the execution and notifies the debugger tool. Since hardware merely checks instruction addresses, it is not capable of differentiating between threads. Moreover, with hardware, the number of breakpoints that can be set simultaneously is limited by the number of available breakpoint registers.
[0054] In the case of software, a low level routine replaces the instruction at the breakpoint address with an invalid instruction or a branch instruction to a predefined address. When the breakpoint is reached, an invalid instruction exception is given or the control reaches the predefined address, and the debugger tool is notified. However, this software approach still performs at the processor assembly instruction level, which prevents separation between different thread executions.
[0055] In the preferred embodiment of the present invention for OS-aware breakpoint support, the exemplary debugging platform of FIG. 1 is used. Breakpoint support is added to the system by an exemplary debugger module that is dynamically linked to the OS. As shown in FIG. 10, the debugger module includes a small routine that replaces the instruction at the breakpoint address with an invalid instruction 1000 as explained in the conventional software approach. In addition to this routine, the debugger module keeps a table, which is called a breakpoint table 1002, that associates with a breakpoint address 1004 the thread ID 1006 for which the breakpoint is set. When the breakpoint is reached on a target processor, the target processor gives an exception and the processor jumps to the exception routine.
[0056] As opposed to the conventional software approach, however, the control is not returned back to the user interface on the host immediately. The breakpoint address 1004 is found in the breakpoint table 1002 and the corresponding thread ID or IDs are compared with the current thread ID that was running when the breakpoint is reached. If a match is found, then the user interface takes over the control. On the other hand, if the IDs do not match, then the control is immediately returned back to the interrupted thread. In this way, only the threads that are marked with breakpoints are interrupted while the other threads are left running. This exemplary embodiment of the inventions shows that the integration of the debugger modules within the OS provides the necessary information for OS-aware debugging, which cannot be achieved with conventional low-level debugging technologies.
Referenced by
Legal Events
Original Image


text:
Jesse Hogan
Jesse Hogan has been a reporter at The Age since 2004, and has been part of its sports department since 2008. He is primarily focused on cricket and has covered a number of the Australian team's overseas tours, including the 2011 World Cup. He also reports on AFL and soccer.
Brad Scott endorses Cameron Ling's coaching potential
Jesse Hogan The biggest flaw Brad Scott can identify in prospective coach Cameron Ling is a conspicuous lack of grumpiness.
St Kilda great Robert Harvey lauds retiring Lenny Hayes
Jesse Hogan A two-time Brownlow Medallist and four-time club champion looking to a teammate just out of his teens for inspiration and leadership? It sounds improbable, but when it came to Lenny Hayes even the...
St Kilda champion Lenny Hayes says the time is right to retire at season's end
Jesse Hogan While Lenny Hayes argued his impending retirement would not be "leaving a massive void or anything like that", a horde of St Kilda players, supporters and even rival football supporters would...
Brian Taylor adamant his gay-slur apology was appropriate
Jesse Hogan Football broadcaster Brian Taylor has indignantly rejected suggestions his apology for a gay slur at the weekend failed to address the central reason for the backlash against him.
Players can drag Collingwood out of slump, Scott Pendlebury says
Jesse Hogan Whether it's cheeky children or the presence of its chief destroyer at its own recovery session, Collingwood captain Scott Pendlebury is not being allowed to forget his team was pummeled by Essendon...
Scott Pendlebury urges Pies to lift
Jesse Hogan A horror month has Collingwood in free fall down the AFL ladder and captain Scott Pendlebury says they have no one to blame but themselves.
Match review panel suspends Fremantle's Hayden Ballantyne
Jesse Hogan Fremantle's Hayden Ballantyne and Gold Coast's Tom Murphy each offered one-match bans by the match review panel, while Port Adelaide veteran Kane Cornes can escape with a reprimand.
Richmond dedicates Port Adelaide win to its dedicated supporters
Jesse Hogan It did not make up for Richmond's underwhelming season, but coach Damien Hardwick was glad its 20-point victory over premiership contender Port Adelaide offered some respite to its hardiest...
Coach wants Port Adelaide players to admit recent flaws
Jesse Hogan Ken Hinkley has challenged his Port Adelaide players to accept their performances have sagged, and promptly remedy that, after their fourth loss in a month.
Richmond upsets Port Adelaide by 20 points
Jesse Hogan Port Adelaide's top-four hopes suffer another blow following Richmond's upset win.
Brad Scott backs Sam Wright to use good fortnight as springboard for better days
Jesse Hogan North Melbourne coach Brad Scott hopes that midfielder Sam Wright's impressive form in the past two matches heralds the start of a long-term period in which Wright's form demands selection.
North Melbourne hopeful of quick recovery for Lachie Hansen
Jesse Hogan, Hobart Brad Scott is hopeful influential defender Lachie Hansen will quickly recover from a head knock that forced his substitution as North Melbourne coasted to a 59-point win over St Kilda at Blundstone...
Kangaroos thump wayward Saints
Jesse Hogan North Melbourne backs up its win over premiers Hawthorn with a 59-point thumping of St Kilda.
Levi Greenwood thriving after recall to Roos' midfield
Jesse Hogan It has taken Levi Greenwood, one of the AFL's most prolific midfielders this season, eight years to be an overnight success.
Melbourne defender Tom McDonald signs two-year contract extension
Jesse Hogan As one out-of-contract Melbourne defender, James Frawley, continues to be linked with a move away from a club a younger peer, Tom McDonald, has extended his stay with the Demons by two years.
David Hale dropped as Ben McEvoy returns for Hawthorn
Jesse Hogan The significant form slump of David Hale this season from his entrenched position as Hawthorn's favoured forward-ruckman has triggered his axing for the Hawks' match away to Adelaide on Friday night.
Brad Scott hopeful elusive winning streak imminent for Kangaroos
Jesse Hogan North Melbourne coach Brad Scott says there is no need for him to remind his players of the importance of notching consecutive wins.
Brian Lake suspended for four matches, Drew Petrie gets reprimand
Jesse Hogan The AFL has conclusively laid the blame for Friday night's ugly scuffle between Brian Lake and Drew Petrie at the feet of the Hawthorn defender
Drew Petrie unfairly punished in Brian Lake scuffle
Jesse Hogan Drew Petrie does not deserve punishment for his instinctive defensive reaction at being choked by his opponent Brian Lake at the weekend.
Brian Lake sent to AFL tribunal for choke hold on Drew Petrie
Jesse Hogan Brian Lake must face the tribunal on Tuesday after the match review panel declined to set its own punishment for his choke on Drew Petrie, who will also appear after shunning a reprimand.

subset: commoncrawl


text:
Latest Taupo Volcanic Zone Stories
A long-dormant New Zealand volcano erupted on Monday, spewing an ash cloud that disrupted flights and closed highways.
Until the late 19th century, New Zealand's Pink and White Terraces along Lake Rotomahana on the North Island, attracted tourists from around the world, interested in seeing the beautiful natural formations created by a large geothermal system.
A US travel Web site picked Scotland's Ben Nevis as the list-topper for the World's Top Five Climbable Mountains for Non-Climbers.
At least three people were reported killed in one of the worst storms to hit the North Island of New Zealand in years. The body of James Moore, a 33-year-old rafting guide, was recovered Sunday, The New Zealand Herald reported.
Wild weather batters parts of New Zealand WELLINGTON, June 29 (Xinhua) -- Snow, rain and gale force winds closed roads, halted interisland ferry travel and threw the plans of some air travelers in Wellington into disarray on Sunday.
- The horn of a unicorn considered as a medical or pharmacological ingredient.
- A winged horse with a single horn on its head; a winged unicorn.


text:
ISDA is leading an industry effort to develop a new standard credit-support annex to resolve disagreement over the valuation of trades backed by multicurrency CSA agreements. The effort faces challenges, but progress is being made. The standard CSA is intended to harmonize and simplify valuation practices.
View Full Article in:Risk.net (subscription required)
Published in Brief:


text:
Manchester United assistant boss Carlos Queiroz admits it's not the best time to be facing Champions League opponents Sporting Lisbon.
"We are going to play a cautious game because we respect Sporting," he told Uefa.com. "However, we will play with ambition because we want to collect the three points at the Alvalade.
"This is not the best time to face Sporting. This is not our best moment and this is also the first group stage match. But hopefully we can get the result we want."
Queiroz is not the only United representative returning to face their former team. Both Cristiano Ronaldo and Nani are ex-Sporting graduates and Queiroz says it will be an important occasion for the Reds' Portuguese clan.
"Of course it will be a special feeling playing against Sporting, as it will be for Nani and Cristiano Ronaldo," he insisted.
"But we are all professionals and I am sure we will do our best. I hope we can play a tremendous game and I'm sure the Sporting fans are expecting this."


text:
The Local History & Genealogy and the Science & History departments of the Central Library of Rochester & Monroe County, in partnership with the Vietnam Veterans of America, Chapter 20, are hosting a new exhibit titled, "Vietnam Veterans: Serving Then and Now." The exhibit will be on display, second floor, Rundel Memorial Building, 115 South Avenue June through December 31, 2015. An afternoon opening reception and lecture are slated for Saturday, June 6.
The City of Rochester and the Rochester Public Library are well-known for its celebrated, tightly-wrapped social and environmental stitch that is woven deep into our community's fabric-- and a literary and library culture that has flourished for well over a century. It is also one of the most bike-friendly, if not bike-crazed, urban spaces in the nation, as measured by commuters, retail sales and bike lanes. And just recently, all of these forces merged while conceiving, "Books by Bike," a mobile "pop-up" library now serving library patrons of the City of Rochester.
The Business & Social Sciences Department of the Central Library of Rochester & Monroe County and the College at Brockport Small Business Development Center (SBDC) are sponsoring a free program for small businesses and entrepreneurs titled, "Social Media 101" on Wednesday, June 3, 2015 from 10:00 am - 12:00 pm in the Kate Gleason Auditorium, Bausch & Lomb Public Library Building, 115 South Avenue, Rochester, NY.
On May 4, the Rochester Regional Library Council formally announced the winners of the RRLC Library of the Year contest. Library advocates will be proud to know a record 1,448 people shared their stories about how much they love their their library services. Rochester Public Library's Arnett Branch Library, 310 Arnett Blvd., located in the 19th Ward won the public library category. The Maplewood Community Library, located at 1111 Dewey Avenue was also awarded an honorable mention.
Due to the overwhelming positive response to our first annual Self-Published Book Festival & Fair held at the Central Library last year, the newly designed event planned for 2015 will be expanded to a two-day festival that will now include books for children, teens and adults. The Self-Published Book Festival & Fair, slated for November 7 and 8, will provide an opportunity for self-published local authors to promote and sell their books; interact with new audiences and network with vendors and other authors. Deadline for submissions is June 1, 2015.
Did you know May is National Bike Month? Now that old man winter is behind us, it's time to make the most of warmer weather by getting our bicycles out of storage and in shape for the summer season. Central Library of Rochester & Monroe County has partnered with our neighborhood bike shop, Full Moon Vista Bike & Sport, 661 South Avenue, to bring local patrons an exciting slate of bike programming during the month of May. National Bike Month is sponsored by the League of American Bicyclists.
Did you ever wonder about the benefits of reading to your baby? Granted, an infant won't completely understand everything you're doing or why. However, reading aloud to your baby is a wonderful shared activity you can experience for many years to come — and it's an important form of stimulation and critical to early childhood development. Why don't you check with your MCLS local public library about resources and programs in your neighborhood?
It's never been easier to find out what's going on at your local library! The Monroe County Library System has compiled a "one stop" resource page of links for library patrons to sign up for electronic newsletters. Our electronic newsletters are a simple, easy-to-read vehicle to keep you informed about news important to you. Find out about all upcoming library events, free library services and programming, reader's advisories and more. It's just one click away.
View All Featured Stories
A sampling of what's coming up at MCLS libraries on Tuesday, May 26:
All events for today...
See all events | Search events


text:
Babylon the Great is Fallen: Gregory R. Copley on Un-Civilization
From the desk of Thomas F. Bertonneau on Fri, 2014-05-02 06:00
The press-kit on Australian writer Gregory R. Copley from Simon & Schuster's author-information website declares that he "has worked internationally at the highest levels of government advising on strategies to achieve economic and political success." The same source identifies Copley as "the founder and editor of the Global Information System intelligence service used by governments, and the Defense & Foreign Affairs series of publications, including the Defense & Foreign Affairs Handbook, hailed as 'indispensable' by President Ronald Reagan's National Security Advisor, William Clark; and author of thousands of articles, classified papers, speeches, and books on strategy, defense, and aviation." In passing self-references Copley describes himself as a strategic thinker, not exclusively in the military or diplomatic spheres. Copley's newest book, Un-Civilization: Urban Geopolitics in a Time of Chaos (2013), concerns itself with fundamental and perhaps terminal changes occurring globally, not only in the industrialized nations, which portend, in his diagnosis, the enormity summed up in the over-title. At the heart of Copley's vision of the near-future lies the counter-intuitive event that he forecasts for the mid-Twenty-First Century – not the Malthusian catastrophe of runaway population and insufficient resource that various Cassandras from Paul R. Ehrlich to Albert A. Gore have profitably vouchsafed to connoisseurs of doom since the 1960s, but rather its opposite, a sudden steep population-decline linked to the desertion of the countryside and the morbid engrossment of the already hyperbolically distended megalopolitan centers.


text:
(skip this header)
More storms headed for S.A.
Top Stories in Local
U.S. & World
Vocabulary test takes away some National Spelling Bee drama
Top Stories in US & World
Jurisdiction over S.A.'s billionaire estate to be decided in two weeks
Top Stories in Business
Texas rallies to beat Oklahoma State for Big 12 baseball title
Top Stories in Sports
12 super lush ways to treat yo' self in S.A.
Top Stories in Food
S.A. fifth-grader nabs gig on Fox quiz show
Top Stories in Entertainment
Recent rain has rivers ready for Texas tubing season
Top Stories in Lifestyle
Clintons stand; standards fall
Top Stories in Opinion
New air traffic control tower at San Francisco International Airport — a splendid view, more than 200 feet up.
Top Stories in Cars
What will get Europe's economy rolling again?
Top Stories in Jobs
Real Estate
See Howard Hughes' Beverly Hills home
Top Stories in Homes
With the news that a remake of "Ben Hur" is in the works, we thought we would come up with a list of movies that should never be remade. We focused on films from 1970 through the end of 2010. So here are our "99 hands off flicks."
© Copyright


text:
Home » Local News » Chicago aldermen react
Posted on 10 September 2012. Tags: aldermen, Chicago, react
Mayor Rahm Emanuel tonight said a teachers strike is "not necessary" because the two sides were close. Full News here – Chicago Breaking News – WGN Radio
You agree to these terms & conditions when posting!English + no HTML please. We email you once your post is live.
English + no HTML please. We email you once your post is live.
Big City Informer | Politics Informer | Bank Informer | Contact Us | Terms Of Use | Submit Your Feed | Advertise With Us | Netventure24
© 2015 Chicago Informer.


text:
Hold down Control (PC) or Command (Mac) key + mouseclick to select more than one option
Home >
Downtown/Waterfront >
Asian Fusion >
The Mandarin Lounge
2 Piece Nigiri $6 / 5 Piece Sashimi $13. Choice Of:
Monday-Friday: 6pm-7pm. Order Any Classic Or Specialty Roll And Enjoy 50% Off All Biodynamic, Organic, Sustainable Wine By The Glass.
Monday-Sunday: 6pm-10pm. Enjoy Any Three Of The Signature Entrees Created By Executive Chef Rick Bartram And Sommelier Selected Beverage Pairing
Available Now $46
Our Signature Non-Alcoholic "Cocktails" Good For All Ages
7days A Week. 2.30pm-4.30pm
Per Person


text:
EN: Create HTML or PDF checklists for your visitors, which can be saved. DE: Erstelle speicherbare HTML oder PDF Checklisten für deine Besucher.
Great plugin! Thank you! Please continue to work on this!
Ein sehr gutes Hilfsmittel zur Erstellung von Checklisten, gutes Handling und flexible Gestaltung der Listen dank Shortcodes.
The only thing really missing is the ability to order the checklist items. As I'm now working on a 30 items list, I had to curse several times when the client asked to reorder some items. I had to copy paste the text between cells like crazy.
If the author can include the option to reorder them I'd gladly make a small donation :)
Thank you for this! The progress meter works great—a color picker would be awesome! Please integrate it into the main plugin soon. Sending $ome gratuity your way :)
This is a good plugin. We used it here: http://www.remoogle.co.uk/moving-house-checklist-tool/
Some good features to it like being able to include html on list items and of course the fact that it saves the list.
It could with being able to add subheadings within one list.
Also, a being able to control the style of the list in the admin panel would be great.
One of a kind. Highly recommend it. Clean and easy to work with.
This is a great plugin and only keeps getting better! I highly recommend it.
You must log in to submit a review. You can also log in or register using the form near the top of this page.


text:
Be the first to hear
about new arrivals, special offers, & the latest design trends!
Palm Beach meets Park Avenue in our Preston 6-Drawer Dresser. Chinoise lines inform the polished profile of this versatile console piece. Available in croc-embossed white leather with Ming feet and faux-bamboo handles. Perfect behind a sofa or underneath the Ellsworth Kelley in the hall.


text:
Effects of Epinephrine and Intravenous (I.V.) Needle on Cardiopulmonary Resuscitation (CPR) Outcome
This study has been completed.
University of Oslo
Laerdal Medical
Ullevaal University Hospital
Health Region East, Norway
Norwegian Air Ambulance Foundation
Information provided by:
University of Oslo
ClinicalTrials.gov Identifier:
First received: July 13, 2005
Last updated: June 11, 2008
Last verified: June 2008
- Full Text View
- Tabular View
- No Study Results Posted
- Disclaimer
- How to Read a Study Record
No Study Results Posted on ClinicalTrials.gov for this Study
|Study Status:
|This study has been completed.
|Study Completion Date:
|June 2008
|Primary Completion Date:
|May 2008 (Final data collection date for primary outcome measure)
No publications provided by University of Oslo
Publications automatically indexed to this study by ClinicalTrials.gov Identifier (NCT Number):
Publications automatically indexed to this study by ClinicalTrials.gov Identifier (NCT Number):


text:
Previous Episode | Next Episode
Cat Got Your Luggage?Cat Got Your Luggage? (2006) Season 1 Episode 109-B- Tom and Jerry Tales Cartoon Episode Guide by Dave Koch
This page has been viewed 29 times this month, and 596 times total.
- 2006
- Warner Bros. Television Animation
- Tom and Jerry Tales Episode Guide
- Cartoon Characters: Tom, Jerry, Hotel Manager.
- Vocal Talent: Don Brown (Thomas "Tom" Cat), Sam Vincent (Gerald "Jerry" Mouse).
- Directed By Douglas McCarthy.
- Produced By Tom Minton, Frank Molieri.
- Written By Robert Ramirez, Richard Pursel, Charles Schneider.
- Edited By Ken Solomon.
Submit Additional Information:
Do you have anything to add to this page? Have we made any mistakes... or do you ahve any additional information about Cat Got Your Luggage?? If so, we would love to hear from you. Please send us a quick note with your additions or corrections to this page, and we will make the corrections as soon as possible!Report Errors / Submit Additional Information
Cartoon Summary:
When Tom is put in charge of managing a fancy hotel, Jerry tries every prank possible to turn the cat's dream job into a horrible nightmare.
Cartoon Comments:
Do you love Cat Got Your Luggage?, or do you think it is the worst cartoon ever? Let us know what you think! Surely you have an opinion... so share what you think. Take a minute and post your own comments about this cartoon here.


text:
Golden Globe Awards 2013: Complete Winners List
The film also won for its director, Ben Affleck, who failed to earn an Oscar nomination in the same category, much to the surprise of many.
Also performing well: Django Unchained, which won for Best Original Screenplay (Quentin Tarantino) and Best Supporting Actor (Christoph Waltz). The latter sent the Oscar race into a frenzy, as many had expected Tommy Lee Jones to sweep for Lincoln.
And continuing its long history of awarding musicals, the Hollywood Foreign Press gave Best Motion Picture – Musical or Comedy honors to Les Miserables. The film walked away with two additional awards — for Best Actor (Hugh Jackman) and Best Supporting Actress (Anne Hathaway), respectively — making it the top-awarded movie of the night.
On the television side, two shows dominated the evening: Homeland, which topped the night with three wins, for Best TV Drama, Best Actor in a Drama (Damian Lewis) and Best Actress in a Drama (Claire Danes); and the HBO zeitgeist series Girls, which just had its season 2 premiere tonight.
That show won for Best TV Series Comedy and for its star, Lena Dunham, who won Best Actress in a Comedy.
Who else won big? Check out the full list of winners, below, plus expert analysis from the Celebuzz team in our comprehensive videos.
All winners are in BOLD.
Best Motion Picture – Drama
Django Unchained
Life of Pi
Zero Dark Thirty
Best Motion Picture – Musical or Comedy
The Best Exotic Marigold Hotel
Les Miserables
Moonrise Kingdom
Salmon Fishing in the Yemen
Silver Linings Playbook
Ben Affleck, Argo
Kathryn Bigelow, Zero Dark Thirty
Ang Lee, Life of Pi
Steven Spielberg, Lincoln
Quentin Tarantino, Django Unchained
Best Actor – Motion Picture Drama
Daniel Day-Lewis, Lincoln
Richard Gere, Arbitage
John Hawkes, The Sessions
Joaquin Phoenix, The Master
Denzel Washington, Flight
Best Actress – Motion Picture Drama
Jessica Chastain, Zero Dark Thirty
Marion Cotillard, Rust and Bone
Helen Mirren, Hitchcock
Naomi Watts, The Impossible
Rachel Weisz, The Deep Blue Sea
Best Actor – Motion Picture Musical or Comedy
Jack Black, Bernie
Bradley Cooper, Silver Linings Playbook
Hugh Jackman, Les Miserables
Ewan McGregor, Salmon Fishing in the Yemen
Bill Murray, Hyde Park on Hudson
Emily Blunt, Salmon Fising in the Yemen
Judi Dench, The Best Exotic Marigold Hotel
Jennifer Lawrence, Silver Linings Playbook
Maggie Smith, Quartet
Meryl Streep, Hope Springs
Best Supporting Actor – Motion Picture
Alan Arkin, Argo
Leonardo DiCaprio, Django Unchained
Philip Seymour Hoffman, The Master
Tommy Lee Jones, Lincoln
Christoph Waltz, Django Unchained
Best Supporting Actress – Motion Picture
Amy Adams, The Master
Sally Field, Lincoln
Anne Hathaway, Les Misearbles
Helen Hunt, The Sessions
Nicole Kidman, The Paperboy
No changes are to be made to this player
Best Screenplay
Zero Dark Thirty
Silver Linings Playbook
Django Unchained
Best Original Song
"For You" – Act of Valor
"Not Running Anymore" – Stand Up Guys
"Safe and Sound" – The Hunger Games
"Skyfall" – Skyfall
"Suddenly" – Les Misérables
No changes are to be made to this player
Best Original Score
Anna Karenina
Cloud Atlas
Life of Pi
Best Foreign Language Film
A Royal Affair
The Untouchables
Rust and Bone
Best Animated Feature
Hotel Transylvania
Rise of the Guardians
Wreck-It Ralph
Best TV Series – Drama
Breaking Bad
Boardwalk Empire
Downton Abbey
The Newsroom
No changes are to be made to this player
Best TV Series – Comedy
The Big Bang Theory
Modern Family
Best Actor – TV Series Drama
Steve Buscemi, Boardwalk Empire
Bryan Cranston, Breaking Bad
Jeff Daniels, The Newsroom
Jon Hamm, Mad Men
Damian Lewis, Homeland
No changes are to be made to this player
Best Actress – TV Series Drama
Connie Britton, Nashville
Glenn Close, Damages
Claire Danes, Homeland
Michelle Dockery, Downton Abbey
Julianna Margulies, The Good Wife
No changes are to be made to this player
Best Actor – TV Miniseries or Movie
Kevin Costner, Hatfield & McCoys
Benedict Cumberbatch, Sherlock
Woody Harrelson, Game Change
Toby Jones, The Girl
Clive Owen, Hemingway & Gellhorn
Best Actress – TV Miniseries or Movie
Nicole Kidman, Hemingway & Gellhorn
Jessica Lange, American Horror Story: Asylum
Sienna Miller, The Girl
Julianne Moore, Game Change
Sigourney Weaver, Political Ani
Best Actor in a TV Series – Comedy
Alec Baldwin, 30 Rock
Don Cheadle, House of Lies
Louis CK, Louie
Matt LeBlanc, Episodes
Jim Parsons, The Big Bang Theory
Best Actress – TV Series Comedy
Zooey Deschanel, New Girl
Julia Louis-Dreyfus, Veep
Lena Dunham, Girls
Tina Fey, 30 Rock
Amy Poehler, Parks and Recreation
Best Miniseries/TV Movie
Game Change
The Girl
Hatfield & McCoys
The Hour
Political Animals
Best Supporting Actor – Series, Miniseries, Motion Picture Made for Television
Max Greenfield, New Girl
Ed Harris, Game Change
Danny Houston, Magic City
Mandy Patinkin, Homeland
Eric Stonestreet, Modern Family
Best Supporting Actress – Series, Miniseries, Motion Picture Made for Television
Hayden Panettiere, Nashville
Archie Panjabi, The Good Wife
Sarah Paulson, Game Change
Maggie Smith, Downton Abbey
Sofia Vergara, Modern Family


text:
Tags: attorney, gun, law, lawyer, legal, radar, readings, received, recorded, state, statebrtexasbrim, ticket, traffic, trooper
Question about ticket (Radar gun readings recorded?)
On Lawyer & Legal » Traffic Law
1,378 words with 1 Comments; publish: Wed, 09 Mar 2005 21:40:00 GMT; (80046.88, « »)
The state is:
Im 22, I received a ticket (I think it was from a state trooper) a week ago. He told me I was going 98 in a 60. Now I really dont beleive that, and I told him that cant be right. Then he told me "yeah, and by the time I locked your speed, it was 84mh." So he goes to write the ticket and I think, okay, 84 in a 60... I can take defensive driving. Then he gives me the ticket, but when I get home I see it is written for 98 in a 60! (the ticket was for speeding only, not reckless driving although it does say "Speeding (R)" for some reason as the violation...
Question is, I can understand 84, but NOT 98 at ALL. I would take a ticket for 84. Can I fight it and get it reduced? Is there a way to show what speed he had locked on his radar gun? Ther IS a place on the ticket that says "RADAR CAL" and has 1204A (i have no idea if that it talking about calibration or what) But I need to know if this is something that I can get reduced or what.
Thank you so much
All Comments
Leave a comment...
- 1 Comments
- Unless you can show that they were lax in getting the radar calibrated, you probably won't win on this one. And no, there is no printed readout for the radar. The radar flashes a reading and it can be locked in place temporarily, but it cannot be saved indefinitely. There is no system on radars to save readings.#1; Wed, 09 Mar 2005 21:59:00 GMT


text:
Timber Towers Using CLT Will Grow Markets for Wood
By Bill Esler | Posted: 04/08/2014 10:04AM
Timber Towers Using CLT Grow Markets for Wood
click image to zoom Continued advances in cross laminated timber (CLT) and wood framing techniques now make wood high-rises practical. A key enabling technology are adhesives.
Architects Skidmore Owings & Merrill provided an update on urban construction trends at last month's American Assn. for the Advancement of Science in Chicago. Attendees we spoke to were excited to learn of SOM's re-engineering and re-design of plans for its existing 400-foot tall, 42-story concrete apartment building - built in 1965 - re-imagined using wood as the principle construction material. The verdict: wood high-rises are strong enough to be tall. And surprisingly, wood structures are also fire-resistant enough to be practical.
The business case: wood high rises are economically and environmentally better than steel and glass for housing millions of newly affluent workers in the developing economies, including hundreds of millions of Chinese and Indian urban dwellers. This would create large new markets for North American wood products.
Among organizations advancing the role of wood in high-rise construction are WoodWorks.org and the Softwood Lumber Board, the latter based in Chicago, where it has been funding research into engineering high-rise construction. WoodWorks.org, an initiative of wood industry associations and lumber companies, notes:
"The type of adhesive used at both North American manufacturing plants currently producing CLT is a formaldehyde-free structural adhesive with great moisture performance. Adhesives must be qualified in accordance with ANSI/APA PRG 320 for bonding strength, moisture durability, elevated temperature performance, and heat durability."
This is definitely a trend to follow.
About the Author
Bill EslerBill Esler, Editorial Director, Woodworking Network Bill is responsible for overall content at WoodworkingNetwork.com Woodworking Network magazine, and related newsletters. Bill also manages event programs for Woodworking Network Live conferences at the Woodworking Machinery & Supplies Expo in Toronto and Cabinets & Closets Expo. He developing audience engagement programs using custom digital printing, live lead-generating events, custom websites, and custom digital and print content. Read Bill Esler's woodworking blogs. He can be reached at firstname.lastname@example.com or follow him on Google+.
Comments (0) Leave a comment
Audacious: The Fine Art of Wood from the Montalto Bohlen CollectionSalem , MA
2015 Summer Showtime MarketHIgh Point , NC
The Canadian Home Furnishings MarketMississauga , ON


text:
Pletcher-Trained Sam P. Sharp in Churchill Drill
(Edited Churchill Downs report)
Starlight Stable and Paul Lucarelli's Sam P., runner-up to Great Hunter in the Robert B. Lewis (gr. II) and third to Tiago in the Santa Anita Derby (gr. I), tuned up for an expected run in the $2 million Kentucky Derby presented by Yum! Brands (gr. I) with a sharp five-furlong workout at Churchill Downs on Monday.
"We thought it was good," said Pletcher. "The horse had a good energy level. He got over the ground well. He showed last fall that he likes the track here. We were happy with it."
Sam P. won a one-mile allowance race at Churchill Downs last fall, a race in which he defeated fellow Kentucky Derby hopeful Chelokee by 2 ¼-lengths. Pletcher made an equipment change on the colt when he added blinkers in the Santa Anita Derby, but he said there's a good chance that the new equipment will be dropped for the colt's Derby run.
"We felt like putting some blinkers on him might get him a little more focused and actually overdid it a little bit. He was a little bit rank in the Santa Anita Derby and I thought he stayed on well to be third, considering that. We're going to decide whether we're going to take the blinkers off, or at least cut them back. We're probably leaning towards taking them off altogether."
Pletcher said that Sam P. is considered definite for the "Run for the Roses."
"He's doing well, he's got the earnings to get in and he's got a win over the track, so we might take a shot. We need him to step his game up to another level, but it's the right time to do it."
Copyright © 2015 The Blood-Horse, Inc. All Rights Reserved.


text:
National Rum Day
August 15, 2014 - 02:55 PM
Text size Decrease Increase
This Saturday is the perfect day to sip on a mojito or a daiquiri...because it's National Rum Day!
Vance Henderson, the beverage and nightlife manger at Cuba Libre Restaurant and Rum Bar, joined us to whip up a few classic rum cocktails.
Read More:
Short URL: http://bit.ly/1vRUH8h


text:
New car test: 2012 Lincoln MKX
5-passsenger crossover has executive class presence and family utility
2012 Lincoln MKX AWD
Body style: midsize, all-wheel-drive, 5-passenger crossover
Engine: 305-hp, direct-injection, 3.7-liter V-6 with twin independent variable camshaft timing
Transmission: 6-speed SelectShift automatic
Fuel mileage: 17/23 mpg city/hwy; 87 octane
Fuel tank: 19 gal.
Standard equipment: Intelligent access with push-button starting and remote start, MyLincolnTouch control system for cabin-audio functions, heated outside mirrors with approach lighting, reverse-sensing system, fog lights, power liftgate, perforated leather upholstery, heated and cooled front seats, dual-zone automatic climate control, tilt-telescopic steering column, 60/40 split folding rear seats (with cargo-area release buttons)
Safety equipment: 6 air bags, 4-wheel disc brakes with 4-channel ABS, roll stability control
Wheelbase/length/width: 111.2/186.7/87.4 (including mirrors) in.
Towing capacity: 3,500 lbs. with Class II hitch
Turning circle: 39.3 ft.
Front head/leg/shoulder room: 40/40.7/58.9 in.
Rear head/leg/shoulder room: 39.3/39.6/58.7 in.
Curb weight: 4,413 lbs.
Cargo area: 32.3 to 68.6 cu. ft.
Base price: $41,870, including $875 freight charge; priced as tested $51,160
Options on test car: Premium package, $7,500, adds 20-inch chrome wheels and Pirelli Scorpion tires, voice-activated navigation, rearview camera, panoramic sunroof, blind-spot monitoring, THX II audio system, adaptive HID headlights and ambient lighting; Adaptive Cruise Control and Collision Warning $1,295; wood package $495
Warranty: 4-years/50,000-miles bumper-to-bumper; 6-years/70,000-miles powertrain with 6-years/70,000-miles roadside assistance; free scheduled maintenance for 12-months/15,000-miles
Where assembled: Oakville, Ontario, Canada
Mark Maynard, U-T San Diego Automotive Editor
I finished my test week in the front passenger seat of the Lincoln MKX, and it had a leavening effect to the evaluation. I was on a round-trip of four hours up and back with a fellow journalist to an event at the Auto Club Speedway in Fontana.
Sitting on the right side of this five-passenger crossover gave a different perspective to consider such elements as seat comfort with their 10-way power adjustment and three levels of heating and cooling. I settled back, dialed up the power lumbar back support and ran a hand along the perforated leather with its appealing line of piping along the edge. The stitched leather dash top is immaculately installed and looks to be as rich as any from the fabled hide houses of England. The blond wood trim, a worthwhile $495 option, has depth and radiance, which helps set a fresh, contemporary tone to the cabin.
The MKX makes a good first impression. It was new last year and nothing of substance was changed or added for 2012. Four new paint colors include Blue Pearl Metallic and Cinnamon Metallic.
Sold in front- or all-wheel drive models, pricing starts at $40,290, including $875 freight charge from Oakville, Ontario, Canada. The AWD tester was $51,160
For comparisons, the Audi Q5 has starting prices that range from $37,000 to $51,000. Starting prices for the BMW X3 range from $38,000 to $44,000, which includes four years of free, scheduled maintenance. The Lexus RX 350 AWD starts at $41,000. And the all-wheel-drive Cadillac SRX starts at $43,000.
The Lincoln succeeds because it is the luxury answer to an American institution, the sport-utility vehicle. But the MKX is no poseur with leather. Based on the Edge crossover, Lincoln MKZ sedan and other Ford vehicles, the MKX ride is more luxury sedan than SUV and surprisingly supple over rough road and gentle on head toss when angling into driveways. The cabin is luxury quiet and smooth on all road surfaces.


text:
African migrants trying to cross from Egypt into Israel have been abused and held for ransom by Bedouin smugglers in the Sinai Desert, according to a new report.
The report issued Tuesday by the Israeli advocacy group Hotline for Migrant Workers presented information gleaned from the testimony of 60 migrants, who discuss being beaten, raped and held for ransom in the northern Sinai.
The organization estimates that about 1,000 migrants, mostly Eritrean, have been held in abusive conditions for months. The Bedouin smugglers contact their families for ransom money.
Some 13,600 mostly economic migrants crossed into Israel from Egypt in 2010; some are refugees from Sudan.
We welcome your feedback.
Privacy Policy
Your information will not be shared or sold without your consent. Get all the details.
Terms of Service
JewishJournal.com has rules for its commenting community.Get all the details.
JewishJournal.com reserves the right to use your comment in our weekly print publication.


text:
Signe Wilkinson by Signe Wilkinson
- July 23, 2013
- From Beginning
- Previous feature
- Next feature
- Current
Comments (54) (Please sign in to comment)
I'm a 66 yYO white woman. I wear hoodies. With the hood up! I haven't been called a thug for wearing a hoody.
Geraldo Rivera thinks it's because he was wearing a hoody. He said that before he posed in his underwear.
I just can't seem to think of such a nice thing as a cozy warm hoody as being an object of terror.
The only people keeping the racial monster alive is the media and the people that see race in every situation.
"Hi Trayvon, why did you punch that Hispanic guy in the face and then slam his head on the concrete when you had more than enough time to just walk away?".
I saw this somewhere yesterday: "Only in America can a brown man shoot a black man, and the white man gets the blame." Kinda sums it up, don't it?
You were there to see it? Oh, you're taking the word of the guy who stalked and shot the unarmed kid who was much smaller than him. Nobody saw how he got those injuries. By the way, Zimmerman can claim Hispanic heritage, but also European. Zimmerman is a German name, he is light skinned, and he has no accent. Unless he told somebody of his heritage, nobody would know.
Those who blame Mr. Martin for being killed are a symptom of the problem. Mr. Zimmerman was a neighbor watch person. His 'job' in that position was to observe and report.
I heard the 911 tape where the operator asked -
"Are you following him?"
Mr. Zimmerman said -
The operator said,
"Ok, we don't need you to do that."
Mr. Zimmerman disregarded that comment.
Then, when Mr. Martin was almost home, Mr. Zimmerman GOT OUT OF HIS CAR.
Had he simply observed and reported – the shooting would not have occurred.
Had he obeyed the implied instruction to not follow Mr. Martin – the shooting would not have happened.
Had he STAYED IN HIS CAR – the shooting would not have occurred.
On a night when it had been raining, a young man with a hoodie was confronted by a man with a gun. The younger person did not have the wisdom or presence of mind to call 911, or return to the store, or to run into his father's house. He just knew he was being followed and apparently did not want this stalker to know where he was going. I can't blame him for not wanting to lead a suspicious person to his father's home.
Why did Mr. Martin attack Mr. Zimmerman? Because he was afraid, and young, and didn't think. Did he see the gun and decide to attack rather than get shot in the back? He's not around to ask. I assure you though -
When he left to buy a drink and some candy, he did not leave with the plan to have a fight or look for trouble. Mr. Zimmerman however, WAS looking for trouble, and it was Mr. Zimmerman who was the catalyst for this tragedy. I agree with the juror who said that if Mr. Martin had been white or latino the outcome would have been the same had they acted as Mr. Martin did.
That said – Mr. Zimmerman and another man worked together to rescue a family of four from an overturned SUV yesterday. He's not an evil man, and I believe if he could do this all over again, he would do it differently.
Those of you blaming Mr. Martin are simply wrong, and reading some of the harsher comments written, I am sad to say, racist.
Amazing how you want to defend the guy who shot an unarmed teenager after pursuing him. "Only in America can a black man be put on trial for his own murder."
Harleyquinn's avatar is a cartoon moron. That should answer your question.
Hate and Controversy sell media time.
Dude, you really need to think before you set fingers to typing.
So tell me, what is it in the evidence presented in the courts that lead you to believe that Zimmerman was poised with his gun out aiming at Martin with the intent to shoot him? If that were the case, and evidence was presented, don't you think the verdict would have been a slam dunk guilty?
How about THIS imaginary scenario?
Martin: (CAC following me) 'sup bro? Why you following me?
Zimmerman: Had some break-ins and I'm on the watch and you are not familiar to me so….
Martin: Idiot, I'm living with my Pops (point behind him to the house) Just moved in yesterday. You got a problem with that?
Zimmerman: uhhhh, no.
Martin: Good, see ya around you crazy ass cracker.
It's people like you that cause the problems to continue and avoid the fixes…
Thank you, onguard. Of course, the libtards won't believe this video.
Go watch the video posted by onguard and learn some facts.
Sigh …
"I'm a 66 yYO white woman"
Hoodies only make young black males threatening, for some.
"Mr. Zimmerman who was the catalyst for this tragedy."
Well said, Mister C.
- Load 15 more comments. | Load the rest (39).
You must be signed in to make a comment.


text:
- REVIEW: The Witcher 3: Wild Hunt
- 17-Year-Old Swatter Pleads Guilty to 23 Incidents
- Batman: Arkham Knight Characters Unmasked Trailer
- F1 2015 Delayed to July
- Pixels Trailer, Will This Make Geeks Happy?
- Watch the Sony E3 Press Conference at a Movie Theater
- Mornin '15
- Need for Speed Reboot Confirmed for Fall 2015
- CD Projekt Red Responds to Graphical Downgrade Accusations
- REVIEW: Life is Strange Episode 3 - Chaos Theory
- Hellraid Sent Back to Drawing Board
- Keri Has a Problem - Unboxing The Witcher 3 Collector's Edition
- Batman: Arkham Knight Live Action Trailer
- Rockstar Files Suit Against BBC for GTA Drama
- Mornin '15
- Batman: Arkham Knight
Characters Unmasked Trailer
- Batman: Arkham Knight
Be the Batman Trailer
- LEGO Dimensions
Great Scott Trailer
- The Witcher 3: Wild Hunt
Launch Trailer
- Life is Strange Episode 3 - Chaos Theory
Launch Trailer
- Batman: Arkham Knight
Dual Gameplay
- Rainbow Six Siege
Release Date Trailer
- Far Cry 3
Patch 1.05
- Assassin's Creed 3
Patch v1.02 to v1.03
- Far Cry 3
Patch 1.04
- Far Cry 3
Patch 1.02
- Ghost Recon: Future Soldier
Patch 1.4 to 1.5
- Max Payne 3
Patch v126.96.36.199
- Max Payne 3
Patch v188.8.131.52
Scooby-Doo Mystery Mayhem Cheats
|ON OTHER PLATFORMS: Playstation 2, GameCube, Xbox, GBA
publisher: THQ
developer: Artificial Mind & Movement
genre: Action Adventure
|ESRB rating: E
release date: Mar 02, 04
|» All About Scooby-Doo Mystery Mayhem on ActionTrip
Opening the bridge
On level 2, to open the bridge there are four switches. Press switches 1, 2, and 4.
Weird Wild West: Safe code
The safe which is in the bank has a three digit code. The code is "1-3-7". It can be found written on the blackboard in the schoolhouse.
Hi-Tech Terror: Getting the red access card
When you need the access card so that Scooby and Shaggy can get through the mist. You must first three mists then go to one of the lockers. One should open and have the red access card inside. Then, go over to the controls so that you can get the robot. Take it over to the red access card door. The door should then open. Go in and turn off all of the knobs. You are now able to go through the door that was blocked by steam.
Hi-Tech Terror: Elevator
When you go in the elevator and go through into the room with the panel of green covering the door, go to the control box on the left. Press the first button once, the second button twice, the third button twice, and the fourth button once. You will be able to walk through.
Get the five hidden sandwich ingredients in a level to unlock a mini-game.
Trap The Fake Ghost mini-game mini-game: Collect the ingredients in level 1.Weird Wild West: Busting Freddy out of jail
Monster Frenzy mini-game: Collect the ingredients in level 2.
Mine Cart mini-game: Collect the ingredients in level 3.
Trail Bike mini-game mini-game: Collect the ingredients in level 4.
Spooky Science mini-game: Collect the ingredients in level 5.
On the other side of main street from the jail where you have to bust Fred out, there will be a small alleyway. Have Scooby crawl underneath the fence to find the liquid soap, then go back to the side of the jail where the hole is blocked by the cart full of gold. Use the liquid soap, and it will slip right over.
114 or 195


text:
Columbus Woman Pleads No Contest to Arson Charges
COLUMBUS, Neb. (AP) - A 28-year-old Columbus woman has made a deal with prosecutors and pleaded no contest in an arson case. Ebtihal Albaiaty had been charged with arson, accused of setting fire on April 30 last year to a house she had been renting. Prosecutors lowered the charge to attempted second-degree arson and dismissed a drug charge in exchange for her plea. Authorities say Albaiaty had received an eviction notice only days before the fire. No injuries from the fire were reported. She faces up to five years in prison at sentencing, which is scheduled for April 19.
On Air
After Dark
12am - 6am
11pm - 12am


text:
Try With These Products:
- From $13.29 - $22.79
- Beauty Club Card $11.99
- $2.49
- Beauty Club Card $2.19
- From $19.99
- Beauty Club Card $19.99
- $15.99
- Beauty Club Card $14.99
Last Visited
Miracle 7 Keratin Leave In Mist
By Miracle 7
Sally Item # SBS-777793
In Stock Online, Available In Sally Stores
Size: 5 oz.
Quantity: One
We're sorry, this product cannot ship to the following locations: Canada
Product Actions
Additional Information
- Restores hair keratin
- Prevents split ends
- Light conditioning
- Infuses hydration
Miracle 7 Keratin Leave In Mist is the ultimate replenishing keratin leave in product. The choice for chemically treated hair, including keratin straightening services.
Ideal for environmentally and thermally damaged hair. Detangles, eliminates frizz while increasing manageability, body and shine. Leaves hair conditioned, protected and wonderfully touchable. Perfect for all hair types.
After shampooing with Miracle 7 Keratin Daily Shampoo, follow with either Miracle 7 Keratin Daily Conditioner or Miracle 7 Deep Conditioner. Towel dry hair. Apply Miracle 7 Leave In Mist from scalp to ends. Comb through. Style as desired.
Miracle 7 Leave In Mist can also be applied to dry hair for additional conditioning.
Aqua (Water/Eau), Cetearyl Alcohol, Behentrimonium Chloride, Propylene Glycol, Cyclopentasiloxane, Fragrance/Parfum, Quaternium-80, Hydrolyzed Keratin, Keratin Amino Acids, Butylene Glycol, Helianthus Annuus (Sunflower) Seed Extract Aloe Barbadensis Leaf Juice, Argania Spinosa Kernel Oil, Euterpe Oleracea Fruit Extract, Sodium Ascorbyl Phosphate, Silk Amino Acids, Methylparaben, Propylparaben, Panthenol, Butylene Glycol,Methylchloroisothiazolinone Methylisothiazolinone
Share your look or technique and get featured
Share your look or technique and get featured
Miracle 7 Keratin Leave In Mist 17 18
HOLY GRAIL PRODUCT! My hair was extremely dry/damaged, so I asked an employee about leave in creams or sprays that would bring my hair back to life. She said Miracle 7 was her favorite, so I bought it and I wish I could go back in the store and hug her. This product has saved my hair! I use it every time I get out of the shower, then I let my hair air dry, it feels so smooth and healthy now. It might be my all time favorite hair product. I've recommended it to all my friends, my younger sister is obsessed as well. August 5, 2014
Effective! Best conditioner I've used. Does a great job at detangling. Leave hair soft, smooth, and frizz-free. I have full shoulder length wavy hair, but my individual strands are fine so I am prone to frizzies. As you can see by the price, it is expensive. I stock up when it goes on sale. The blue bottle conditioner works well too, it's just a slightly lighter formula than the purple. The purple bottle gives hair a smoother feel. Use the blue bottle if you prefer a lighter conditioner. April 21, 2014
WOW! I have extremely curly hair and have a daily battle with trying to control it and reduce frizziness! Ta dahhhhhhhh, this product truly is my miracle!! I use it every single day and I no longer have to worry about frizzy out of control hair! Only thing I don't like about this product is that I can only find a small bottle. I want a GALLON!! November 20, 2013
Mixed feelings Smells good, softens hair. I saw no difference with breakage/strength. February 24, 2013
2 Questions
0 Answers
Product Q&A
Ask your questions. Share your answers.
« Back
0 answers
Does is work as a heat protector?
Does it work in replacement of a heat protector? Does it contain protein? Can you use it daily?
1 month, 4 weeks ago
0 answers
Consistency change: Miracle 7 Keratin Leave In Mist
I stocked up on Miracle 7 Keratin Leave In Mist when I found it on sale at Sally Beauty about a year ago. Within a few months, the solution in the first bottle had thickened to the consistency of hand cream, and I couldn't spray mist it anymore.
I'd pour some into my hands and rub it through my hair and let it settle in a little before using my flatiron. After a few sessions of that, I felt that I was saturating my hair with too much product. So I tried another, untouched bottle, and found that it, too had thickened.
I now have a little over three bottles of this that are too thick to spray. Any suggestions?
I'd pour some into my hands and rub it through my hair and let it settle in a little before using my flatiron. After a few sessions of that, I felt that I was saturating my hair with too much product. So I tried another, untouched bottle, and found that it, too had thickened.
I now have a little over three bottles of this that are too thick to spray. Any suggestions?
7 months ago
Chelmsford, MA
1 of 1
1 of 1


text:
Guest Blog By: Christine Blauvelt
Tech is the new hot scene in Nairobi, so developers should find it easy to land a job, right? Wrong. There is a huge gap between the number of openings employers are looking to fill and the number of qualified candidates they are finding.
Why is this? Most commonly, job candidates struggle to present themselves in the right way, they fail to apply to the jobs they are best suited for, and they lack soft skills when interviewing with the employer.
JoinDuma Worksat the iHub at5:30pmon July 9thfor our cleverly titled (and sure to be interesting) event:
Job Hunting 4 Techies 101
We will discuss all you need to know in order to navigate the tech hiring scene. Getting a job – be it at a startup, large corporation, or as a freelancer, may seem daunting. We've got you covered.
Employers looking to find tech talent – this might be just the right event to come to.
And just in case you forgot…
Who are we?
Duma Works delivers high quality, affordable hiring solutions for small to medium-sized enterprises in Kenya. We are a community of over 10,000 Kenyan professionals (and growing), and we have matched over 4,000 job seekers to opportunities. To sign up: Visitwww.dumaworks.com, send a WhatsApp to 0701060302, or send an SMS to 22131.
Event details:
Wednesday, July 9thfrom5:30 – 7pm
iHub, 4thFloor Bishop Magua
Ngong Rd. opp. Uchumi Hyper


text:
الانتفاضة الإلكترونية
Human rights film festival held in neighborhood destroyed by Israeli bombing. MORE
PHOTOS: Lara Aburamadan
Palestinian civil society in Gaza urges escalation of international activisim to hold Israel accountable for its "criminal behavior."
Israel is using lethal force as a matter of policy.
The end of the Zionist colonial venture remains the precondition for justice and peace for all the residents of historic Palestine.
Testimonies from Israeli soldiers remind me of my family's fear last summer.
A monthly roundup of photographs documenting Palestine, Palestinian life, politics and culture, and international solidarity with Palestine.
An Israeli judge, himself a settler, has given the green light for the destruction of 100 homes.
Protesters have been threatened with confiscation of Jerusalem ID cards.
Donors to the Jewish National Fund are often unaware they are helping to conceal the results of ethnic cleansing.
Corinne Silva's photographic exhibition illustrates how Zionists have tried to erase Palestine's identity and culture.
Your support helps us tell Palestine's stories every day. Donate Now
© 2000-2015 electronicIntifada.net