Downloads & Free Reading Options - Results
Reading The Web by Maya B. Eagleton
Read "Reading The Web" by Maya B. Eagleton through these free online access and download options.
Books Results
Source: The Internet Archive
The internet Archive Search Results
Available books for downloads and borrow from The internet Archive
1The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.
The Chromium Projects Home Chromium ChromiumOS Quick links Report bugs Discuss Other sites Chromium Blog Google Chrome Extensions Except as otherwise noted , the content of this page is licensed under a Creative Commons Attribution 2.5 license , and examples are licensed under the BSD License . Privacy Edit this page For Developers > How-Tos > Debugging Chromium on Windows First see get the code for checkout and build instructions. Getting started You can use Visual Studio's built-in debugger or WinDBG to debug Chromium. You don't need to use the IDE to build in order to use the debugger: autoninja is used to build Chromium and most developers invoke it from a command prompt, and then open the IDE for debugging as necessary. To start debugging an already-built executable with Visual Studio just launch Visual Studio (2019 or higher) and select File-> Open-> Project/Solution (Ctrl+Shift+O) and select the executable of interest. This will create a solution with that executable as the 'project'. You can then launch the debugger with F5 or F11 or from the Debug menu. If you right-click on the executable in Solution Explorer and select properties then you can edit things such as the executable path, command-line arguments, and working directory. You can add additional executables to the solution by using File-> Add-> Existing Project and selecting another already-built executable. You can select which one to debug by right-clicking on one of them in Solution Explorer and selecting Set as Startup Project. When your solution file is customized to your taste you can save it to a directory such as out\solutions. Saving it there helps ensure that relative paths to source files, printed from build commands, will correctly identify the source files. The Tools menu can be used to add commands to do things like invoke autoninja to build Chrome, compile the selected source file, or other things. Visual Studio 2017 is not recommended for debugging of Chromium - use a newer version for best performance and stability. symbol_level=2 is the default on Windows and gives full debugging information with types, locals, globals, function names, and source/line information. symbol_level=1 creates smaller PDBs with just function names, and source/line information - source-level debugging is still supported (new from June 2019), but local variables and type information are missing. symbol_level=0 gives extremely limited debugging abilities, mostly just viewing call stacks when Chromium crashes. Browsing source code If you use a solution file generated by gn ( gn gen --ide=vs ) then Intellisense may help you navigate the code. If this doesn't work or if you use a solution created as above then you may want to install VsChromium to help navigate the code, as well as using https://source.chromium.org . Profiles It's a good idea to use a different Chrome profile for your debugging. If you are debugging Google Chrome branded builds, or use a Chromium build as your primary browser, the profiles can collide so you can't run both at once, and your stable browser might see profile versions from the future (Google Chrome and Chromium use different profile directories by default so won't collide). Use the command-line option: --user-data-dir =C:\tmp\my_debug_profile (replace the path as necessary) Using the IDE, go to the Debugging tab of the properties of the chrome project, and set the Command Arguments. Chrome debug log Enable Chrome debug logging to a file by passing --enable-logging --v=1 command-line flags at startup. Debug builds place the chrome_debug.log file in the out\Debug directory. Release builds place the file in the top level of the user data Chromium app directory, which is OS-version-dependent. For more information, see logging and user data directory details. Symbol server If you are debugging official Google Chrome release builds, use the symbol server: https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, this goes in Tools > Options under Debugging > Symbols . You should set up a local cache in a empty directory on your computer. In windbg you can add this to your symbol server search path with the command below, where C:\symbols is a local cache directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You can set the _NT_SYMBOL_PATH environment variable to include both the Microsoft and Google symbol servers - VS, windbg, and other tools should both respect this environment variable: _NT_SYMBOL_PATH =SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols ;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note that symbol servers will let the debuggers download both the PE files (DLLs and EXEs) and the PDB files. Chrome often loads third party libraries and partial symbols for some of these are also public. For example: AMD : https://download.amd.com/dir/bin Nvidia : https://driver-symbols.nvidia.com/ Intel : https://software.intel.com/sites/downloads/symbols/ For example, for completeness, the following symbol server environment variable will resolve all of the above sources - but this is more than is normally needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source indexing You should set up source indexing in your debugger ( .srcfix in windbg, Tools-> Options-> Debugging-> General-> Enable source server support in Visual Studio) so that the correct source files will automatically be downloaded based on information in the downloaded symbols. Additionally, you must have python in your path in order for the command that fetches source files to succeed; launching the debugger from the same environment as where you build Chromium is an easy way to ensure it's present. This is highly recommended when debugging released Google Chrome builds or looking at crash dumps. Having the correct version of the source files automatically show up saves significant time so you should definitely set this. Multi-process issues Chromium can be challenging to debug because of its multi-process architecture . When you select Run in the debugger, only the main browser process will be debugged. The code that actually renders web pages (the Renderer) and the plugins will be in separate processes that's not (yet!) being debugged. The ProcessExplorer tool has a process tree view where you can see how these processes are related. You can also get the process IDs associated with each tab from the Chrome Task Manager (right-click on an empty area of the window title bar to open). Automatically attach to child processes There are two Visual Studio extensions that enable the debugger to automatically attach to all Chrome processes, so you can debug all of Chrome at once. Microsoft's Child Process Debugging Power Tool is a standalone extension for this, and VsChromium is another option that bundles many other additional features. In addition to installing one of these extensions, you must run Visual Studio as Administrator, or it will silently fail to attach to some of Chrome's child processes. Single-process mode One way to debug issues is to run Chromium in single-process mode. This will allow you to see the entire state of the program without extra work (although it will still have many threads). To use single-process mode, add the command-line flag --single-process This approach isn't perfect because some problems won't manifest themselves in this mode and some features don't work and worker threads are still spawned into new processes. Manually attaching to a child process You can attach to the running child processes with the debugger. Select Tools > Attach to Process and click the chrome.exe process you want to attach to. Before attaching, make sure you have selected only Native code when attaching to the process This is done by clicking Select... in the Attach to Process window and only checking Native. If you forget this, it may attempt to attach in "WebKit" mode to debug JavaScript, and you'll get an error message "An operation is not legal in the current state." You can now debug the two processes as if they were one. When you are debugging multiple processes, open the Debug > Windows > Processes window to switch between them. Sometimes you are debugging something that only happens on startup, and want to see the child process as soon as it starts. Use: --renderer-startup-dialog --no-sandbox You have to disable the sandbox or the dialog box will be prohibited from showing. When the dialog appears, visit Tools > Attach to Process and attach to the process showing the Renderer startup dialog. Now you're debugging in the renderer and can continue execution by pressing OK in the dialog. Startup dialogs also exist for other child process types: --gpu-startup-dialog , --ppapi-startup-dialog , --utility-startup-dialog , --plugin-startup-dialog (for NPAPI). For utilities, you can add a service type --utility-startup-dialog=data_decoder.mojom.DataDecoderService . You can also try the vs-chromium plug-in to attach to the right processes. Semi-automatically attaching the debugger to child processes The following flags cause child processes to wait for 60 seconds in a busy loop for a debugger to attach to the process. Once either condition is true, it continues on; no exception is thrown. --wait-for-debugger-children [=filter] The filter, if provided, will fire only if it matches the --type parameter to the process. Values include renderer , plugin (for NPAPI), ppapi , gpu-process , and utility . When using this option, it may be helpful to limit the number of renderer processes spawned, using: --renderer-process-limit = 1 Image File Execution Options Using Image File Execution Options (IFEO) will not work because CreateProcess() returns the handle to the debugger process instead of the intended child process. There are also issues with the sandbox. Time travel debugging You can do time travel debugging using WinDbg Preview (must be installed from the Microsoft Store). This lets you execute a program forward and backwards. After capturing a trace, you can set breakpoints and step through code as normal, but also provides 'backwards' commands (g-, t-, p-) so that you can go back and forth through the execution. It is especially useful to set data breakpoints ( ba command ) and reverse continuing, so you can see when a certain variable was last changed to its current value. Chromium specifics: The type of injection the time travel tracer needs to perform is incompatible with the Chromium sandbox. In order to record a trace, you'll need to run with --no-sandbox . Chromium cannot run elevated with Administrator privileges, so the "Launch executable (advance)" option won't work, you'll need to attach after the process has already launched via the checkbox in the bottom right. If you need to record startup-like things, you'll have to use --{browser,gpu,renderer,utility}-startup-dialog, then attach (and hope the relevant code hasn't executed before that point). JsDbg -- data structure visualization You can install JsDbg as a plugin for WinDbg or Visual Studio . It interactively lets you look at data structures (such as the DOM tree, Accessibility tree, layout object tree, and others) in a web browser as you debug. See the JsDbg site for some screen shots and usage examples. This also works when examining memory dumps (though not minidumps), and also works together with time travel debugging. Visual Studio hints Debug visualizers Chrome's custom debug visualizers should be added to the pdb files and automatically picked up by Visual Studio. The definitions are in //tools/win/DebugVisualizers if you need to modify them (the BUILD.gn file there has additional instructions). Don't step into trivial functions The debugger can be configured to automatically not step into functions based on regular expression. Edit default.natstepfilter in the following directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for the current user only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for the current user only) Add regular expressions of functions to not step into. Remember to regex-escape and XML-escape them, e.g. < for < and \. for a literal dot. Example: < Function > < Name > operator new </ Name > < Action > NoStepInto </ Action > </ Function > < Function > < Name > operator delete </ Name > < Action > NoStepInto </ Action > </ Function > <!-- Skip everything in std --> < Function > < Name > std::.* </ Name > < Action > NoStepInto </ Action > </ Function > <!-- all methods on WebKit OwnPtr and variants, ... WTF::*Ptr<*>::* --> < Function > < Name > WTF::.*Ptr<.*>::.* </ Name > < Action > NoStepInto </ Action > </ Function > This file is read at start of a debugging session (F5), so you don't need to restart Visual Studio after changing it. More info: Microsoft email thread V8 and Chromium V8 supports many command-line flags that are useful for debugging. V8 command-line flags can be set via the Chromium command-line flag --js-flags; for instance: chrome.exe --js-flags= "--trace_exception --heap_stats" Note that some V8 command-line flags exist only in the debug build of V8. For a list of all V8 flags try: chrome.exe --js-flags= "--help" Graphics debugging GPU Acceleration of rendering can be more easily debugged with tools. See: Graphics Debugging in Visual Studio 2013 Graphical debugging with NVIDIA NSight Debugging on another machine Sometimes it's useful to debug installation and execution on a machine other than your primary build box. To run the installer on said other machine, first build the mini_installer target on your main build machine (e.g., autoninja -C out\Debug mini_installer). Next, on the debug machine: Make the build machine's build volume available on the debug machine either by mounting it locally (e.g., Z:\) or by crafting a UNC path to it (e.g., \\builder\src) Open up a command prompt and change to a local disk Run src\tools\win\ copy-installer.bat in the remote checkout by way of the mount (e.g., Z:\PATHTOCHECKOUT\src\...) or UNC path (e.g., \\builder\src\...). This will copy the installer, DLLs, and PDBs into your debug machine's C:\out or C:\build (depending on if you're rocking the component=shared_library build or not) Run C:\out\Debug\mini_installer.exe with the flags of your choice to install Chrome. This can take some time, especially on a slow machine. Watch the Task Manager and wait until mini_installer.exe exits before trying to launch Chrome (by way of the shortcut(s) created by the installer) For extra pleasure, add C:\out\Debug to your _NT_SYMBOL_PATH environment variable Consider reading the documentation at the top of copy-installer.bat to see how you can run it. It tries to be smart and copy the right things, but you may need to be explicit (e.g., "copy-installer.bat out Debug"). It is safe to re-run the script to copy only modified files (after a rebuild, for example). You can also use the zip action of the isolate scripts (tools\mb\mb.py) to package all the files for a target into a single zip file, for example: python tools\mb\mb.py zip out/Release base_unittests base_unittests. zip Finding all memory allocations It is possible to use Heap Snapshots to get call stacks on all outstanding allocations that use the OS heap. This works particularly well if heap snapshots are started as soon as the Chrome browser process is created, but before it starts running. Details can be found in this batch file . However, with PartitionAlloc Everywhere most Chromium allocations no longer use the Windows heap so this will only find a subset of allocations, mostly from OS DLLs. Find memory leaks Note: as with Heap Snapshots the utility of UMDH is greatly reduced now because PartitionAlloc Everywhere has mostly replaced the Windows heap. The Windows heap manager has a really useful debug flag, where it can be asked to capture and store a stack trace with every allocation. The tool to scrape these stack traces out of processes is UMDH, which comes with WinDbg . UMDH is great. It will capture a snapshot of the heap state as many times as you like, and it'll do it fairly quickly. You then run it again against either a single snapshot, or a pair of snapshots, at which time it'll symbolize the stack traces and aggregate usage up to unique stack traces. Turning on the user stack trace database for chrome.exe with gflags.exe makes it run unbearably slowly; however, turning on the user stack trace database on for the browser alone is just fine. While it's possible to turn on the user stack database with the "!gflag" debugging extension, it's too late to do this by the time the initial debugger breakpoint hits. The only reasonable way to do this is to Launch GFlags.exe, Enable the user stack trace database (per image below), Launch Chrome under the debugger. Set a breakpont when chrome.dll loads with "sxe ld chrome.dll". Step up, to allow Chrome.dll to initialize. Disable the stack trace database in GFlags.exe. Continue chrome, optionally detaching the debugger. GFlags.exe settings for user mode stack trace database. If you then ever suffer a browser memory leak, you can snarf a dump of the process with umdh - p :<my browser pid> > chrome-browser-leak-umdh-dump.txt which can then typically be "trivially" analyzed to find the culprit. Miscellaneous Note that by default Application Verifier only works with non-official builds of Chromium. To use Application Verifier on official builds you need to add --disable-features=RendererCodeIntegrity to avoid sandbox crashes in renderer processes. See crbug.com/1004989 for details. See also this page . Application Verifier is a free tool from Microsoft (available as part of the Windows SDK) that can be used to flush out programming errors. Starting with M68 Application Verifier can be enabled for chrome.exe without needing to disable the sandbox. After adding chrome.exe to the list of applications to be stressed you need to expand the list of Basics checks and disable the Leak checks. You may also need to disable Handles and Locks checks depending on your graphics driver and specific Chrome version, but the eventual goal is to have Chrome run with Handles and Locks checks enabled. When bugs are found Chrome will trigger a breakpoint so running all Chrome processes under a debugger is recommended. Chrome will run much more slowly because Application Verifier puts every heap allocation on a separate page. Note that with PartitionAlloc Everywhere most Chromium allocations don't actually go through the Windows heap and are therefore unaffected by Application Verifier. You can check the undocumented 'Cuzz' checkbox in Application Verifier to get the Windows thread scheduler to add some extra randomness in order to help expose race conditions in your code. To put a breakpoint on CreateFile(), add this break point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} specifies the DLL (context operator). _ prefix means extern "C". @28 postfix means _stdcall with the stack pop at the end of the function. i.e. the number of arguments in BYTES. You can use DebugView from SysInternals or sawbuck to view LOG() messages that normally go to stderr on POSIX.
“The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.” Metadata:
- Title: ➤ The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.
“The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: debugging-chromium-on-windows
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 0.33 Mbs, the file-s went public at Fri Jul 11 2025.
Available formats:
Archive BitTorrent - Metadata - Text -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX. at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
2Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web
By Reagle, Joseph Michael, author
The Chromium Projects Home Chromium ChromiumOS Quick links Report bugs Discuss Other sites Chromium Blog Google Chrome Extensions Except as otherwise noted , the content of this page is licensed under a Creative Commons Attribution 2.5 license , and examples are licensed under the BSD License . Privacy Edit this page For Developers > How-Tos > Debugging Chromium on Windows First see get the code for checkout and build instructions. Getting started You can use Visual Studio's built-in debugger or WinDBG to debug Chromium. You don't need to use the IDE to build in order to use the debugger: autoninja is used to build Chromium and most developers invoke it from a command prompt, and then open the IDE for debugging as necessary. To start debugging an already-built executable with Visual Studio just launch Visual Studio (2019 or higher) and select File-> Open-> Project/Solution (Ctrl+Shift+O) and select the executable of interest. This will create a solution with that executable as the 'project'. You can then launch the debugger with F5 or F11 or from the Debug menu. If you right-click on the executable in Solution Explorer and select properties then you can edit things such as the executable path, command-line arguments, and working directory. You can add additional executables to the solution by using File-> Add-> Existing Project and selecting another already-built executable. You can select which one to debug by right-clicking on one of them in Solution Explorer and selecting Set as Startup Project. When your solution file is customized to your taste you can save it to a directory such as out\solutions. Saving it there helps ensure that relative paths to source files, printed from build commands, will correctly identify the source files. The Tools menu can be used to add commands to do things like invoke autoninja to build Chrome, compile the selected source file, or other things. Visual Studio 2017 is not recommended for debugging of Chromium - use a newer version for best performance and stability. symbol_level=2 is the default on Windows and gives full debugging information with types, locals, globals, function names, and source/line information. symbol_level=1 creates smaller PDBs with just function names, and source/line information - source-level debugging is still supported (new from June 2019), but local variables and type information are missing. symbol_level=0 gives extremely limited debugging abilities, mostly just viewing call stacks when Chromium crashes. Browsing source code If you use a solution file generated by gn ( gn gen --ide=vs ) then Intellisense may help you navigate the code. If this doesn't work or if you use a solution created as above then you may want to install VsChromium to help navigate the code, as well as using https://source.chromium.org . Profiles It's a good idea to use a different Chrome profile for your debugging. If you are debugging Google Chrome branded builds, or use a Chromium build as your primary browser, the profiles can collide so you can't run both at once, and your stable browser might see profile versions from the future (Google Chrome and Chromium use different profile directories by default so won't collide). Use the command-line option: --user-data-dir =C:\tmp\my_debug_profile (replace the path as necessary) Using the IDE, go to the Debugging tab of the properties of the chrome project, and set the Command Arguments. Chrome debug log Enable Chrome debug logging to a file by passing --enable-logging --v=1 command-line flags at startup. Debug builds place the chrome_debug.log file in the out\Debug directory. Release builds place the file in the top level of the user data Chromium app directory, which is OS-version-dependent. For more information, see logging and user data directory details. Symbol server If you are debugging official Google Chrome release builds, use the symbol server: https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, this goes in Tools > Options under Debugging > Symbols . You should set up a local cache in a empty directory on your computer. In windbg you can add this to your symbol server search path with the command below, where C:\symbols is a local cache directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You can set the _NT_SYMBOL_PATH environment variable to include both the Microsoft and Google symbol servers - VS, windbg, and other tools should both respect this environment variable: _NT_SYMBOL_PATH =SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols ;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note that symbol servers will let the debuggers download both the PE files (DLLs and EXEs) and the PDB files. Chrome often loads third party libraries and partial symbols for some of these are also public. For example: AMD : https://download.amd.com/dir/bin Nvidia : https://driver-symbols.nvidia.com/ Intel : https://software.intel.com/sites/downloads/symbols/ For example, for completeness, the following symbol server environment variable will resolve all of the above sources - but this is more than is normally needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source indexing You should set up source indexing in your debugger ( .srcfix in windbg, Tools-> Options-> Debugging-> General-> Enable source server support in Visual Studio) so that the correct source files will automatically be downloaded based on information in the downloaded symbols. Additionally, you must have python in your path in order for the command that fetches source files to succeed; launching the debugger from the same environment as where you build Chromium is an easy way to ensure it's present. This is highly recommended when debugging released Google Chrome builds or looking at crash dumps. Having the correct version of the source files automatically show up saves significant time so you should definitely set this. Multi-process issues Chromium can be challenging to debug because of its multi-process architecture . When you select Run in the debugger, only the main browser process will be debugged. The code that actually renders web pages (the Renderer) and the plugins will be in separate processes that's not (yet!) being debugged. The ProcessExplorer tool has a process tree view where you can see how these processes are related. You can also get the process IDs associated with each tab from the Chrome Task Manager (right-click on an empty area of the window title bar to open). Automatically attach to child processes There are two Visual Studio extensions that enable the debugger to automatically attach to all Chrome processes, so you can debug all of Chrome at once. Microsoft's Child Process Debugging Power Tool is a standalone extension for this, and VsChromium is another option that bundles many other additional features. In addition to installing one of these extensions, you must run Visual Studio as Administrator, or it will silently fail to attach to some of Chrome's child processes. Single-process mode One way to debug issues is to run Chromium in single-process mode. This will allow you to see the entire state of the program without extra work (although it will still have many threads). To use single-process mode, add the command-line flag --single-process This approach isn't perfect because some problems won't manifest themselves in this mode and some features don't work and worker threads are still spawned into new processes. Manually attaching to a child process You can attach to the running child processes with the debugger. Select Tools > Attach to Process and click the chrome.exe process you want to attach to. Before attaching, make sure you have selected only Native code when attaching to the process This is done by clicking Select... in the Attach to Process window and only checking Native. If you forget this, it may attempt to attach in "WebKit" mode to debug JavaScript, and you'll get an error message "An operation is not legal in the current state." You can now debug the two processes as if they were one. When you are debugging multiple processes, open the Debug > Windows > Processes window to switch between them. Sometimes you are debugging something that only happens on startup, and want to see the child process as soon as it starts. Use: --renderer-startup-dialog --no-sandbox You have to disable the sandbox or the dialog box will be prohibited from showing. When the dialog appears, visit Tools > Attach to Process and attach to the process showing the Renderer startup dialog. Now you're debugging in the renderer and can continue execution by pressing OK in the dialog. Startup dialogs also exist for other child process types: --gpu-startup-dialog , --ppapi-startup-dialog , --utility-startup-dialog , --plugin-startup-dialog (for NPAPI). For utilities, you can add a service type --utility-startup-dialog=data_decoder.mojom.DataDecoderService . You can also try the vs-chromium plug-in to attach to the right processes. Semi-automatically attaching the debugger to child processes The following flags cause child processes to wait for 60 seconds in a busy loop for a debugger to attach to the process. Once either condition is true, it continues on; no exception is thrown. --wait-for-debugger-children [=filter] The filter, if provided, will fire only if it matches the --type parameter to the process. Values include renderer , plugin (for NPAPI), ppapi , gpu-process , and utility . When using this option, it may be helpful to limit the number of renderer processes spawned, using: --renderer-process-limit = 1 Image File Execution Options Using Image File Execution Options (IFEO) will not work because CreateProcess() returns the handle to the debugger process instead of the intended child process. There are also issues with the sandbox. Time travel debugging You can do time travel debugging using WinDbg Preview (must be installed from the Microsoft Store). This lets you execute a program forward and backwards. After capturing a trace, you can set breakpoints and step through code as normal, but also provides 'backwards' commands (g-, t-, p-) so that you can go back and forth through the execution. It is especially useful to set data breakpoints ( ba command ) and reverse continuing, so you can see when a certain variable was last changed to its current value. Chromium specifics: The type of injection the time travel tracer needs to perform is incompatible with the Chromium sandbox. In order to record a trace, you'll need to run with --no-sandbox . Chromium cannot run elevated with Administrator privileges, so the "Launch executable (advance)" option won't work, you'll need to attach after the process has already launched via the checkbox in the bottom right. If you need to record startup-like things, you'll have to use --{browser,gpu,renderer,utility}-startup-dialog, then attach (and hope the relevant code hasn't executed before that point). JsDbg -- data structure visualization You can install JsDbg as a plugin for WinDbg or Visual Studio . It interactively lets you look at data structures (such as the DOM tree, Accessibility tree, layout object tree, and others) in a web browser as you debug. See the JsDbg site for some screen shots and usage examples. This also works when examining memory dumps (though not minidumps), and also works together with time travel debugging. Visual Studio hints Debug visualizers Chrome's custom debug visualizers should be added to the pdb files and automatically picked up by Visual Studio. The definitions are in //tools/win/DebugVisualizers if you need to modify them (the BUILD.gn file there has additional instructions). Don't step into trivial functions The debugger can be configured to automatically not step into functions based on regular expression. Edit default.natstepfilter in the following directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for the current user only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for the current user only) Add regular expressions of functions to not step into. Remember to regex-escape and XML-escape them, e.g. < for < and \. for a literal dot. Example: < Function > < Name > operator new </ Name > < Action > NoStepInto </ Action > </ Function > < Function > < Name > operator delete </ Name > < Action > NoStepInto </ Action > </ Function > <!-- Skip everything in std --> < Function > < Name > std::.* </ Name > < Action > NoStepInto </ Action > </ Function > <!-- all methods on WebKit OwnPtr and variants, ... WTF::*Ptr<*>::* --> < Function > < Name > WTF::.*Ptr<.*>::.* </ Name > < Action > NoStepInto </ Action > </ Function > This file is read at start of a debugging session (F5), so you don't need to restart Visual Studio after changing it. More info: Microsoft email thread V8 and Chromium V8 supports many command-line flags that are useful for debugging. V8 command-line flags can be set via the Chromium command-line flag --js-flags; for instance: chrome.exe --js-flags= "--trace_exception --heap_stats" Note that some V8 command-line flags exist only in the debug build of V8. For a list of all V8 flags try: chrome.exe --js-flags= "--help" Graphics debugging GPU Acceleration of rendering can be more easily debugged with tools. See: Graphics Debugging in Visual Studio 2013 Graphical debugging with NVIDIA NSight Debugging on another machine Sometimes it's useful to debug installation and execution on a machine other than your primary build box. To run the installer on said other machine, first build the mini_installer target on your main build machine (e.g., autoninja -C out\Debug mini_installer). Next, on the debug machine: Make the build machine's build volume available on the debug machine either by mounting it locally (e.g., Z:\) or by crafting a UNC path to it (e.g., \\builder\src) Open up a command prompt and change to a local disk Run src\tools\win\ copy-installer.bat in the remote checkout by way of the mount (e.g., Z:\PATHTOCHECKOUT\src\...) or UNC path (e.g., \\builder\src\...). This will copy the installer, DLLs, and PDBs into your debug machine's C:\out or C:\build (depending on if you're rocking the component=shared_library build or not) Run C:\out\Debug\mini_installer.exe with the flags of your choice to install Chrome. This can take some time, especially on a slow machine. Watch the Task Manager and wait until mini_installer.exe exits before trying to launch Chrome (by way of the shortcut(s) created by the installer) For extra pleasure, add C:\out\Debug to your _NT_SYMBOL_PATH environment variable Consider reading the documentation at the top of copy-installer.bat to see how you can run it. It tries to be smart and copy the right things, but you may need to be explicit (e.g., "copy-installer.bat out Debug"). It is safe to re-run the script to copy only modified files (after a rebuild, for example). You can also use the zip action of the isolate scripts (tools\mb\mb.py) to package all the files for a target into a single zip file, for example: python tools\mb\mb.py zip out/Release base_unittests base_unittests. zip Finding all memory allocations It is possible to use Heap Snapshots to get call stacks on all outstanding allocations that use the OS heap. This works particularly well if heap snapshots are started as soon as the Chrome browser process is created, but before it starts running. Details can be found in this batch file . However, with PartitionAlloc Everywhere most Chromium allocations no longer use the Windows heap so this will only find a subset of allocations, mostly from OS DLLs. Find memory leaks Note: as with Heap Snapshots the utility of UMDH is greatly reduced now because PartitionAlloc Everywhere has mostly replaced the Windows heap. The Windows heap manager has a really useful debug flag, where it can be asked to capture and store a stack trace with every allocation. The tool to scrape these stack traces out of processes is UMDH, which comes with WinDbg . UMDH is great. It will capture a snapshot of the heap state as many times as you like, and it'll do it fairly quickly. You then run it again against either a single snapshot, or a pair of snapshots, at which time it'll symbolize the stack traces and aggregate usage up to unique stack traces. Turning on the user stack trace database for chrome.exe with gflags.exe makes it run unbearably slowly; however, turning on the user stack trace database on for the browser alone is just fine. While it's possible to turn on the user stack database with the "!gflag" debugging extension, it's too late to do this by the time the initial debugger breakpoint hits. The only reasonable way to do this is to Launch GFlags.exe, Enable the user stack trace database (per image below), Launch Chrome under the debugger. Set a breakpont when chrome.dll loads with "sxe ld chrome.dll". Step up, to allow Chrome.dll to initialize. Disable the stack trace database in GFlags.exe. Continue chrome, optionally detaching the debugger. GFlags.exe settings for user mode stack trace database. If you then ever suffer a browser memory leak, you can snarf a dump of the process with umdh - p :<my browser pid> > chrome-browser-leak-umdh-dump.txt which can then typically be "trivially" analyzed to find the culprit. Miscellaneous Note that by default Application Verifier only works with non-official builds of Chromium. To use Application Verifier on official builds you need to add --disable-features=RendererCodeIntegrity to avoid sandbox crashes in renderer processes. See crbug.com/1004989 for details. See also this page . Application Verifier is a free tool from Microsoft (available as part of the Windows SDK) that can be used to flush out programming errors. Starting with M68 Application Verifier can be enabled for chrome.exe without needing to disable the sandbox. After adding chrome.exe to the list of applications to be stressed you need to expand the list of Basics checks and disable the Leak checks. You may also need to disable Handles and Locks checks depending on your graphics driver and specific Chrome version, but the eventual goal is to have Chrome run with Handles and Locks checks enabled. When bugs are found Chrome will trigger a breakpoint so running all Chrome processes under a debugger is recommended. Chrome will run much more slowly because Application Verifier puts every heap allocation on a separate page. Note that with PartitionAlloc Everywhere most Chromium allocations don't actually go through the Windows heap and are therefore unaffected by Application Verifier. You can check the undocumented 'Cuzz' checkbox in Application Verifier to get the Windows thread scheduler to add some extra randomness in order to help expose race conditions in your code. To put a breakpoint on CreateFile(), add this break point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} specifies the DLL (context operator). _ prefix means extern "C". @28 postfix means _stdcall with the stack pop at the end of the function. i.e. the number of arguments in BYTES. You can use DebugView from SysInternals or sawbuck to view LOG() messages that normally go to stderr on POSIX.
“Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web” Metadata:
- Title: ➤ Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web
- Author: Reagle, Joseph Michael, author
- Language: English
“Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web” Subjects and Themes:
- Subjects: Online chat groups - Electronic discussion groups - Blogs -- Social aspects - Internet -- Social aspects
Edition Identifiers:
- Internet Archive ID: readingcommentsl0000reag
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 468.35 Mbs, the file-s for this book were downloaded 43 times, the file-s went public at Wed Jun 16 2021.
Available formats:
ACS Encrypted PDF - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - EPUB - Item Tile - JPEG Thumb - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
3Top Stocks Picks From Goldman Sachs: Strong EPS Growth With Reasonable Valuations; A Roundup Of What The Globe And Mail’s Market Strategist Scott Barlow Is Reading Today On The Web
Top stocks picks from Goldman Sachs: Strong EPS growth with reasonable valuations; A roundup of what The Globe and Mail’s market strategist Scott Barlow is reading today on the Web
“Top Stocks Picks From Goldman Sachs: Strong EPS Growth With Reasonable Valuations; A Roundup Of What The Globe And Mail’s Market Strategist Scott Barlow Is Reading Today On The Web” Metadata:
- Title: ➤ Top Stocks Picks From Goldman Sachs: Strong EPS Growth With Reasonable Valuations; A Roundup Of What The Globe And Mail’s Market Strategist Scott Barlow Is Reading Today On The Web
- Language: English
“Top Stocks Picks From Goldman Sachs: Strong EPS Growth With Reasonable Valuations; A Roundup Of What The Globe And Mail’s Market Strategist Scott Barlow Is Reading Today On The Web” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: factiva-20230802-1318
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1.10 Mbs, the file-s for this book were downloaded 53 times, the file-s went public at Wed Aug 02 2023.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Top Stocks Picks From Goldman Sachs: Strong EPS Growth With Reasonable Valuations; A Roundup Of What The Globe And Mail’s Market Strategist Scott Barlow Is Reading Today On The Web at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
4ERIC ED620154: Investigating The Efficacy Of A Web-Based Early Reading And Professional Development Intervention For Young English Learners
By ERIC
The purpose of this study was to evaluate whether the Targeted Reading Intervention (TRI), a professional development and early reading intervention program delivered via webcam technology, could support the early reading progress of English learners (ELs). Participants for the current study were drawn from a larger three-year randomized controlled trial and included 108 ELs from 47 classrooms randomly assigned to treatment and control conditions. Teachers in treatment classrooms used the TRI in one-on-one sessions in the regular classroom for approximately 15 minutes per day. Weekly, and later biweekly, webcam coaching sessions between a TRI coach and each classroom teacher allowed the coach to interact with both the teacher and students in real time and allowed classroom teachers to receive real-time feedback from the coach. Two-level hierarchical linear models suggested that ELs struggling with learning to read in intervention classrooms significantly outperformed their peers in control classrooms on word-level measures of early reading, with effect sizes of 0.43 and 0.45, but not on text-level measures. Results also suggested that ELs struggling with learning to read were gaining at the same rate as their nonstruggling peers but were unable to catch up within the study year. [This paper was published in "Reading Research Quarterly" v53 n2 p155-174 2017 (EJ1174309).]
“ERIC ED620154: Investigating The Efficacy Of A Web-Based Early Reading And Professional Development Intervention For Young English Learners” Metadata:
- Title: ➤ ERIC ED620154: Investigating The Efficacy Of A Web-Based Early Reading And Professional Development Intervention For Young English Learners
- Author: ERIC
- Language: English
“ERIC ED620154: Investigating The Efficacy Of A Web-Based Early Reading And Professional Development Intervention For Young English Learners” Subjects and Themes:
- Subjects: ➤ ERIC Archive - ERIC - Amendum, Steven J. Bratsch-Hines, Mary Vernon-Feagans, Lynne Intervention - Reading Instruction - Faculty Development - Web Based Instruction - Randomized Controlled Trials - Coaching (Performance) - English Language Learners - Control Groups - Experimental Groups - Feedback (Response) - Effect Size - Reading Difficulties - Elementary School Students - Instructional Effectiveness - Teaching Methods - Achievement Gains - Reading Achievement
Edition Identifiers:
- Internet Archive ID: ERIC_ED620154
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 19.66 Mbs, the file-s for this book were downloaded 6 times, the file-s went public at Wed Nov 13 2024.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find ERIC ED620154: Investigating The Efficacy Of A Web-Based Early Reading And Professional Development Intervention For Young English Learners at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
5Measuring Reading Ability In The Web-browser With A Lexical Decision Task
By Jason Yeatman
We have developed a Rapid Online Assessment of Reading (ROAR). We completed a first study validating this tool and it is described in this preprint (Study 1): https://www.biorxiv.org/content/10.1101/2020.07.30.229658v2 This pre-registration is for Study 2 which is a larger norming study. After completion, the results of this norming study will be reported in that same paper.
“Measuring Reading Ability In The Web-browser With A Lexical Decision Task” Metadata:
- Title: ➤ Measuring Reading Ability In The Web-browser With A Lexical Decision Task
- Author: Jason Yeatman
Edition Identifiers:
- Internet Archive ID: osf-registrations-ktu92-v1
Downloads Information:
The book is available for download in "data" format, the size of the file-s is: 0.08 Mbs, the file-s for this book were downloaded 2 times, the file-s went public at Wed Aug 25 2021.
Available formats:
Archive BitTorrent - Metadata - ZIP -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Measuring Reading Ability In The Web-browser With A Lexical Decision Task at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
6Dialectical Reading In The Web Environment: Findings From A Case Study
By hamid keshavarz, amir vafaeian
Purpose: Initially, reading challenges related to the web environment will be discussed in the current paper followed by describing four reading modes including exegetical, dogmatic, agnostic and dialectical which have been proposed by Walter Kaufman. The research aimed to examine such modes of reading in the Web environment via a questionnaire distributed among the postgraduate students in Shahed University of Tehran, IRAN. Methodology: By stratified-random sampling method, 266 students were selected as the statistical population of the research from a population of 800 students. Findings: By descriptive and nonparametric statistical analysis, the finding of the research indicate that the students have respectively used agnostic (52.6 %), dialectical (33.5 %), dogmatic (11.3 %) and finally exegetical (2.6 %) reading modes in the reading of web resources. More statistical analyses according to the gender, faculty and level of students showed that dialectical reading, as the ideal mode of reading, is the secondary mode after the agnostic one. Paper recommends the necessity of instructing advanced information literacy and critical thinking skills for dialectical .The literature review shows that the current research is the first one regarding dialectical reading mode in the Web environment.
“Dialectical Reading In The Web Environment: Findings From A Case Study” Metadata:
- Title: ➤ Dialectical Reading In The Web Environment: Findings From A Case Study
- Author: hamid keshavarz, amir vafaeian
- Language: per
“Dialectical Reading In The Web Environment: Findings From A Case Study” Subjects and Themes:
- Subjects: Web reading - Dialectical reading - Web literacy - Information literacy - Critical thinking
Edition Identifiers:
- Internet Archive ID: infosci-282211392841800
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 8.56 Mbs, the file-s for this book were downloaded 7 times, the file-s went public at Wed Aug 23 2023.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Dialectical Reading In The Web Environment: Findings From A Case Study at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
7Google - Reading Is A Critical Skill To Develop At A Young Age, So We're Making The Read Along App Available Globally As A Website. Now Young Readers Can Develop Their Reading Skills On The Web With The Help Of Diya, A Reading Assistant. Explore It Today → 📚
By Google
Reading is a critical skill to develop at a young age, so we're making the Read Along app available globally as a website. Now young readers can develop their reading skills on the web with the help of Diya, a reading assistant. Explore it today → https://t.co/iBAFR13Fmf 📚 https://t.co/i80B8WyzQc Source: https://twitter.com/Google/status/1557078037732229120 Uploader: Google
“Google - Reading Is A Critical Skill To Develop At A Young Age, So We're Making The Read Along App Available Globally As A Website. Now Young Readers Can Develop Their Reading Skills On The Web With The Help Of Diya, A Reading Assistant. Explore It Today → 📚” Metadata:
- Title: ➤ Google - Reading Is A Critical Skill To Develop At A Young Age, So We're Making The Read Along App Available Globally As A Website. Now Young Readers Can Develop Their Reading Skills On The Web With The Help Of Diya, A Reading Assistant. Explore It Today → 📚
- Author: Google
“Google - Reading Is A Critical Skill To Develop At A Young Age, So We're Making The Read Along App Available Globally As A Website. Now Young Readers Can Develop Their Reading Skills On The Web With The Help Of Diya, A Reading Assistant. Explore It Today → 📚” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: twitter-1557078037732229120
Downloads Information:
The book is available for download in "movies" format, the size of the file-s is: 0.73 Mbs, the file-s for this book were downloaded 7 times, the file-s went public at Thu Sep 22 2022.
Available formats:
Archive BitTorrent - Item Tile - JPEG - JPEG Thumb - JSON - MPEG4 - Metadata - Thumbnail - Unknown - h.264 IA -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Google - Reading Is A Critical Skill To Develop At A Young Age, So We're Making The Read Along App Available Globally As A Website. Now Young Readers Can Develop Their Reading Skills On The Web With The Help Of Diya, A Reading Assistant. Explore It Today → 📚 at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
8CIA Reading Room Cia-rdp75-00149r000600350034-4: O WHAT A TANGLED WEB THE CIA WOVE
By CIA Reading Room
`~3 2 6 i~S7 Approved For Release 2001/04/23: CIA-RDP75-00149R CPYRGHT l l I .+1. i% V cp/?L/? a:.RL'?(~itiU B y Richard i'crr?rcood N 1;147, T I-il YEAh the Central ln- .eigence Agency was born, a brawl- g Corsican from the docks of Mar- seines was recruited to perform a scrv- ice for the Western Allies. ills .',amc was Fee:?i Pisani. His task was to see to it, by whatever means seemed appropriate, that Communists among the longshoremen of ,Marseilles would not impede the unloading of Marshall Plan cargoes in France. Pisani did the job and got rich in the process. His CIA retainer was $250.006 in cash.,lt was refreshed from time to governmental institutions, or to finance the industrial establishment through economic and military programs. In- tellectuals, students, educators, trade monists, journalists and professional men had to be reached directly; through., their private concerns. Operating from that premise, the ?,i CTA,began in the late 194iis and early.' 1950s a vast program that was to in- volve not only such ii-ion as Pisani but most of the major ri'.?ait' lustit.riLions 7orK UL certain merrcan private or- ganizations, it did not act on its own initiative but in accordance with na- tional policies established by the Na- tional Security Council in 1952 through, 1954. Throughout, it acted with the approval of senior interdepartmental committees, including 'the Secretaries of State and Defense or their relire? - sentatives." The agency also acted with the Gull knowledge and consent of the con:are'- 'n American life. The cxic?nt of that sional committees created to over e, involvement and the subtcrfuges that its operations. Its activities, in'slu,ri, were used to. bring' it about are now were the public policy, never pbt)!icty revelations of the past two weeks. i' What is known the press and the } public now is sti~l far less thaai what is not known, which Is to say it is likely that the surf;,re' ? has been barely scratched. But ?ccriain basic facts seem clear enough. The first is !'.rest many millions of dollars of public money have been used by the CIA, with, no public ac- counting, to influence the political and ideological po:?ture of private groups, time in the years that followed and within the United States. How much 'i: aril's stature in the rough private : money is involved is such a tightly H" work' in w: icr: he moved increased ac- held secret that the President of the cording y. Iic became a symbol of the United States, as of last week, appar p ower that private men and private ently had no inkling of the answer. organizations often wield in the intri- Only about $15 million has been traced, sate game of international affairs. but, unsubstantiated rumors place the It was evident to the CIA from the true figure in the hundreds of millions. moment it commenced operations that Top-Level Decision mnc,i lice Pisani and organizations like the trade union movement had an im-'i r i HE SECOND ' self-evident fact, is , g e en a s mcnseiy important role to play in what .ij. that the decision to fight the cold as an employe of the firm. 5amue resident i\ciinedy was to call "the war covertly through private groups i ion;; twilight struggle" between the. ad was no whimsical, unilateral decision ver cries jr, the cold war. by the men who have run the CIA for ,.~ the past 20 years. As Under Secretary ? .>.. ~;c: ' ? ":)r'oach of State Nicholas Katzenbach reported enough for the Unitccl: to the President last week: u ? ~'Al its alligs to streuthen "lYhen the Central Intelli yence approved or a lase 2110M 4/ , ,y6PMP,Q9L14PliQ9.0.600350034-4 United States. it was a,policy, moreover, that had the overt approval and collatx,ra ion of what Richard Rovere has described as the American Establishment, that loose coalition of. lawyers, industrialists and financiers who are thought,' rightly or wrongly, subtly to guide the course of public affairs in the United States. A Business Connection ~LLEN DULLES, who ran the CIA 13 in the 1950s, was a product of the 1`;ew York law firm of Sullivan & Cromwell, which has always epitomized - the Establishment. While he was 'in. charge at the Agency, his business and legal confreres were used extensively to.enable the CIA to achieve its secret purposes. The Wall Street investment firm of Wood, 'Struthers .& Winthrop provided "cover" for at least one CIA agent, 11 Hans Tofte by issuin him cr d ti l
“CIA Reading Room Cia-rdp75-00149r000600350034-4: O WHAT A TANGLED WEB THE CIA WOVE” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp75-00149r000600350034-4: O WHAT A TANGLED WEB THE CIA WOVE
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp75-00149r000600350034-4
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1.83 Mbs, the file-s for this book were downloaded 16 times, the file-s went public at Thu Nov 09 2023.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Image-Only PDF Metadata JSON - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp75-00149r000600350034-4: O WHAT A TANGLED WEB THE CIA WOVE at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
9CIA Reading Room Cia-rdp88-01315r000300560023-6: WEST GERMANY: THE SPIDER'S WEB
By CIA Reading Room
Approved For Release 2004#6`M44 4;CIA-RDP88-01315R0003000600O3t6 (A G'~'``z"'' D C I 2 8 JUN 1976 t;' ! fv'tf WES / GERMANY: The upk ler's Web I'hc 'n ,t fashion tbk' } ouitg career cont)I?~ h:, drove a 515,000 Jaguar and renter', ,. !r.r dso nc house in the suburbs of B n,,, 1., + were also crack Commu- nist ;t.?i? i .;r ten years, Lothar-Ervin L,utze, .;nd his wife, Renate, 36, alle?cell, t?t ed some of NATO's most vital ty,ir-, ,-i;tingency plans to East Ger- many. I;arl\ this month, \VestGermany's counte re7, i)lona?e agency, the Federal Offite for the Pruft (tion of tare, (:oitstitll- tiun r 111\'`, stir cl the f rIt zt?s iu it serifs lrf raid, that cnntinued inlto last "k"' .111(t hnrit
“CIA Reading Room Cia-rdp88-01315r000300560023-6: WEST GERMANY: THE SPIDER'S WEB” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp88-01315r000300560023-6: WEST GERMANY: THE SPIDER'S WEB
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp88-01315r000300560023-6
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1.04 Mbs, the file-s for this book were downloaded 8 times, the file-s went public at Sat Apr 06 2024.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Image-Only PDF Metadata JSON - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp88-01315r000300560023-6: WEST GERMANY: THE SPIDER'S WEB at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
10ERIC ED416840: Reading The Writing On The Graffiti Wall: The World Wide Web And Training.
By ERIC
This paper examines the benefits to be derived from networked computer-based instruction (CBI) and discusses the potential of the World Wide Web (WWW) as an effective tool in employee training. Methods of utilizing the WWW as a training tool and communication tool are explored. The discussion is divided into the following sections: (1) "WWW and Communications Technology," including the pivotal role of communication technologies in shaping the practice and character of employee training; (2) "Computing and Employee Training," including the benefits of CBI such as increased interaction among remote learners, cooperative training environments, learning as a team process, and self-directed learning; (3) "WWW from Internet to Intranet," including the development of Internet accessibility from the 1980s to the present; (4) "WWW Training," including design of tutorials and online lessons, as well as the Web's potential for interactivity; (5) "WWW Reports," including the Web's versatility as a publisher; (6) "WWW Assessments"; and (7) "WWW Q & A," including news-groups, the Common Gateway Interface (CGI) protocol, and computerized search agents. It is concluded that--in order for information technology productivity gains to be realized--new technologies must be used in innovative ways to increase the productivity of training. (Contains 6 references.) (MES)
“ERIC ED416840: Reading The Writing On The Graffiti Wall: The World Wide Web And Training.” Metadata:
- Title: ➤ ERIC ED416840: Reading The Writing On The Graffiti Wall: The World Wide Web And Training.
- Author: ERIC
- Language: English
“ERIC ED416840: Reading The Writing On The Graffiti Wall: The World Wide Web And Training.” Subjects and Themes:
- Subjects: ➤ ERIC Archive - Adult Education - Computer Assisted Instruction - Computer Mediated Communication - Instructional Design - Instructional Effectiveness - Job Training - Productivity - Training Methods - World Wide Web - Jones, Charles M.
Edition Identifiers:
- Internet Archive ID: ERIC_ED416840
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 10.15 Mbs, the file-s for this book were downloaded 90 times, the file-s went public at Thu Dec 24 2015.
Available formats:
Abbyy GZ - Animated GIF - Archive BitTorrent - DjVu - DjVuTXT - Djvu XML - Item Tile - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find ERIC ED416840: Reading The Writing On The Graffiti Wall: The World Wide Web And Training. at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
11WEB BASED RESOURCES AND TOOLS IN ONLINE LEARNING: A PARTICIPATORY AND COLLABORATIVE METHOD TO ENHANCE READING AND WRITING SKILLS IN THE STUDENTS STUDYING INTERMEDIATE COURSE OF ANDHRA PRADESH AND TELANGANA STATES
By Kavya Rayala and Dr. Madhavi Kesari
The paper examines various reading and writing activities/exercises given in the English textbooks prescribed for the students studying intermediate in the select colleges of the two states of Andhra Pradesh and Telangana. The paper also reviews the familiarity of students and teachers with the available web based resources and tools that aid in participatory and collaborative online learning process. As part of the study student and teacher questionnaires were administered to I and II year Intermediate students of select private junior colleges. Further, tasks have been designed for reading and writing activities in order to enable the use of digital tools. Later, qualitative data from focus- group interviews was used to analyze the efficacy of digital tools and web based resources in enhancing reading and writing skills. Finally, the paper suggests potential online resources like websites and digital tools for enhancing the reading and writing skills of students that foster the process of teaching/ learning ESL.
“WEB BASED RESOURCES AND TOOLS IN ONLINE LEARNING: A PARTICIPATORY AND COLLABORATIVE METHOD TO ENHANCE READING AND WRITING SKILLS IN THE STUDENTS STUDYING INTERMEDIATE COURSE OF ANDHRA PRADESH AND TELANGANA STATES” Metadata:
- Title: ➤ WEB BASED RESOURCES AND TOOLS IN ONLINE LEARNING: A PARTICIPATORY AND COLLABORATIVE METHOD TO ENHANCE READING AND WRITING SKILLS IN THE STUDENTS STUDYING INTERMEDIATE COURSE OF ANDHRA PRADESH AND TELANGANA STATES
- Author: ➤ Kavya Rayala and Dr. Madhavi Kesari
- Language: English
“WEB BASED RESOURCES AND TOOLS IN ONLINE LEARNING: A PARTICIPATORY AND COLLABORATIVE METHOD TO ENHANCE READING AND WRITING SKILLS IN THE STUDENTS STUDYING INTERMEDIATE COURSE OF ANDHRA PRADESH AND TELANGANA STATES” Subjects and Themes:
- Subjects: Online learning - digital tools - web based resources - tasks - sub- skills of reading and writing
Edition Identifiers:
- Internet Archive ID: ijm-11-04-073
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 8.72 Mbs, the file-s for this book were downloaded 39 times, the file-s went public at Sat Dec 04 2021.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - EPUB - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find WEB BASED RESOURCES AND TOOLS IN ONLINE LEARNING: A PARTICIPATORY AND COLLABORATIVE METHOD TO ENHANCE READING AND WRITING SKILLS IN THE STUDENTS STUDYING INTERMEDIATE COURSE OF ANDHRA PRADESH AND TELANGANA STATES at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
12Reading, Writing & The World Wide Web
By Bjork, Patrick Bryce, 1953-
The paper examines various reading and writing activities/exercises given in the English textbooks prescribed for the students studying intermediate in the select colleges of the two states of Andhra Pradesh and Telangana. The paper also reviews the familiarity of students and teachers with the available web based resources and tools that aid in participatory and collaborative online learning process. As part of the study student and teacher questionnaires were administered to I and II year Intermediate students of select private junior colleges. Further, tasks have been designed for reading and writing activities in order to enable the use of digital tools. Later, qualitative data from focus- group interviews was used to analyze the efficacy of digital tools and web based resources in enhancing reading and writing skills. Finally, the paper suggests potential online resources like websites and digital tools for enhancing the reading and writing skills of students that foster the process of teaching/ learning ESL.
“Reading, Writing & The World Wide Web” Metadata:
- Title: ➤ Reading, Writing & The World Wide Web
- Author: Bjork, Patrick Bryce, 1953-
- Language: English
“Reading, Writing & The World Wide Web” Subjects and Themes:
- Subjects: ➤ English language -- Rhetoric -- Computer network resources - Report writing -- Computer network resources - Windows (Computer programs) - Internet
Edition Identifiers:
- Internet Archive ID: readingwritingwo0000bjor
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 600.21 Mbs, the file-s for this book were downloaded 11 times, the file-s went public at Wed Apr 12 2023.
Available formats:
ACS Encrypted PDF - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - Extra Metadata JSON - Item Tile - JPEG Thumb - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - Metadata Log - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - RePublisher Final Processing Log - RePublisher Initial Processing Log - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Reading, Writing & The World Wide Web at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
13ERIC ED423558: Reading The World Wide Web.
By ERIC
Given predictions that hypermedia will lead to meaningful changes in ways of knowing and how people make sense of the world, this question and answer paper discusses research conducted by the Technology and Literate Thinking group at the Center on English Learning and Achievement on how adult students make sense of information found on the World Wide Web. It presents preliminary findings in a model that is helping to frame further investigation into (1) new forms of literacy and literate thinking occasioned by electronic media; and (2) the processes people use when interacting with electronic texts and how these processes can be shaped by educators to maximize language and literacy development. Contains a figure illustrating the model that represents preliminary findings. (RS)
“ERIC ED423558: Reading The World Wide Web.” Metadata:
- Title: ➤ ERIC ED423558: Reading The World Wide Web.
- Author: ERIC
- Language: English
“ERIC ED423558: Reading The World Wide Web.” Subjects and Themes:
- Subjects: ➤ ERIC Archive - Educational Research - Electronic Text - Higher Education - Hypermedia - Information Retrieval - Information Seeking - Interviews - Literacy - Models - Research Needs - Secondary Education - Users (Information) - World Wide Web
Edition Identifiers:
- Internet Archive ID: ERIC_ED423558
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 6.16 Mbs, the file-s for this book were downloaded 86 times, the file-s went public at Sun Dec 27 2015.
Available formats:
Abbyy GZ - Animated GIF - Archive BitTorrent - DjVu - DjVuTXT - Djvu XML - JPEG Thumb - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find ERIC ED423558: Reading The World Wide Web. at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
14CIA Reading Room Cia-rdp88-01315r000400130005-2: THE WEB OF POWER OAS: 20 YEARS OF SUBSERVIENCE
By CIA Reading Room
No Description
“CIA Reading Room Cia-rdp88-01315r000400130005-2: THE WEB OF POWER OAS: 20 YEARS OF SUBSERVIENCE” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp88-01315r000400130005-2: THE WEB OF POWER OAS: 20 YEARS OF SUBSERVIENCE
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp88-01315r000400130005-2
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 2.41 Mbs, the file-s for this book were downloaded 10 times, the file-s went public at Wed Apr 03 2024.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Image-Only PDF Metadata JSON - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp88-01315r000400130005-2: THE WEB OF POWER OAS: 20 YEARS OF SUBSERVIENCE at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
15ERIC EJ1067757: Reading On The Computer Screen: Does Font Type Have Effects On Web Text Readability?
By ERIC
Reading on the World Wide Web has become a daily habit nowadays. This can be seen from the perspective of changes in readers' tendency to be more interested in materials from the internet, than printed media. Taking these developments into account, it is important for web-based instructional designers to choose the appropriate font, especially for long blocks of text, in order to enhance the level of readability for students. Accordingly, this study aims to evaluate the effects of serif and sans serif fonts in the category of screen fonts and print fonts, in terms of Malay text readability on websites. For this purpose, four fonts were selected, namely Georgia (serif) and Verdana (sans serif) for the first respondents and Times New Roman (serif) and Arial (sans serif) for the second respondents. Georgia and Verdana were designed for computer screens display. Meanwhile, Times New Roman and Arial were originally designed for print media. A readability test on a computer screen was conducted on 48 undergraduates. Overall, the results showed that there was no significant difference between the readability of serif and sans serif font of both screen display category and print display category. Accordingly, the research findings and the literature overview, suggest that Verdana followed by Georgia is the better choice in displaying long text on websites. Likewise, as anticipated, Times New Roman and Arial fonts provide good readability for print media, which reinforces their status as the printing font category. However, with the current computer screen capability, it can still be an alternative option for instructional web developers.
“ERIC EJ1067757: Reading On The Computer Screen: Does Font Type Have Effects On Web Text Readability?” Metadata:
- Title: ➤ ERIC EJ1067757: Reading On The Computer Screen: Does Font Type Have Effects On Web Text Readability?
- Author: ERIC
- Language: English
“ERIC EJ1067757: Reading On The Computer Screen: Does Font Type Have Effects On Web Text Readability?” Subjects and Themes:
- Subjects: ➤ ERIC Archive - Foreign Countries - Undergraduate Students - Readability - Computer System Design - Design Preferences - Visual Aids - Computers - Layout (Publications) - Printing - Internet - Instructional Design - Computer Mediated Communication - Statistical Analysis - Ali, Ahmad Zamzuri Mohamad|Wahid, Rahani|Samsudin, Khairulanuar|Idris, Muhammad Zaffwan
Edition Identifiers:
- Internet Archive ID: ERIC_EJ1067757
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 8.77 Mbs, the file-s for this book were downloaded 63 times, the file-s went public at Wed Oct 03 2018.
Available formats:
Abbyy GZ - Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find ERIC EJ1067757: Reading On The Computer Screen: Does Font Type Have Effects On Web Text Readability? at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
16The Cool Web : The Pattern Of Children's Reading
Reading on the World Wide Web has become a daily habit nowadays. This can be seen from the perspective of changes in readers' tendency to be more interested in materials from the internet, than printed media. Taking these developments into account, it is important for web-based instructional designers to choose the appropriate font, especially for long blocks of text, in order to enhance the level of readability for students. Accordingly, this study aims to evaluate the effects of serif and sans serif fonts in the category of screen fonts and print fonts, in terms of Malay text readability on websites. For this purpose, four fonts were selected, namely Georgia (serif) and Verdana (sans serif) for the first respondents and Times New Roman (serif) and Arial (sans serif) for the second respondents. Georgia and Verdana were designed for computer screens display. Meanwhile, Times New Roman and Arial were originally designed for print media. A readability test on a computer screen was conducted on 48 undergraduates. Overall, the results showed that there was no significant difference between the readability of serif and sans serif font of both screen display category and print display category. Accordingly, the research findings and the literature overview, suggest that Verdana followed by Georgia is the better choice in displaying long text on websites. Likewise, as anticipated, Times New Roman and Arial fonts provide good readability for print media, which reinforces their status as the printing font category. However, with the current computer screen capability, it can still be an alternative option for instructional web developers.
“The Cool Web : The Pattern Of Children's Reading” Metadata:
- Title: ➤ The Cool Web : The Pattern Of Children's Reading
- Language: English
“The Cool Web : The Pattern Of Children's Reading” Subjects and Themes:
- Subjects: ➤ Children -- Books and reading - Children's literature -- Authorship - Children's literature -- History and criticism
Edition Identifiers:
- Internet Archive ID: coolwebpatternof1978unse
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 846.76 Mbs, the file-s for this book were downloaded 52 times, the file-s went public at Thu Nov 07 2019.
Available formats:
ACS Encrypted EPUB - ACS Encrypted PDF - Abbyy GZ - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - EPUB - Item Tile - JPEG Thumb - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find The Cool Web : The Pattern Of Children's Reading at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
17CIA Reading Room Cia-rdp70b00338r000300030026-4: O WHAT A TANGLED WEB THE CIA WOVE
By CIA Reading Room
No Description
“CIA Reading Room Cia-rdp70b00338r000300030026-4: O WHAT A TANGLED WEB THE CIA WOVE” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp70b00338r000300030026-4: O WHAT A TANGLED WEB THE CIA WOVE
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp70b00338r000300030026-4
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 2.31 Mbs, the file-s for this book were downloaded 5 times, the file-s went public at Wed May 29 2024.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp70b00338r000300030026-4: O WHAT A TANGLED WEB THE CIA WOVE at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
18Red Web 🔴🕸 - “I Can See The Pulse On My Eyes!” First Members Watch @_TrevorC Try Reading @AlfredoPlays’ Mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow
By Red Web 🔴🕸
“I can see the pulse on my eyes!” First members watch @_TrevorC try reading @AlfredoPlays’ mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow https://t.co/vYWsTvNtzk https://t.co/fzmY73yA4b
“Red Web 🔴🕸 - “I Can See The Pulse On My Eyes!” First Members Watch @_TrevorC Try Reading @AlfredoPlays’ Mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow” Metadata:
- Title: ➤ Red Web 🔴🕸 - “I Can See The Pulse On My Eyes!” First Members Watch @_TrevorC Try Reading @AlfredoPlays’ Mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow
- Author: Red Web 🔴🕸
“Red Web 🔴🕸 - “I Can See The Pulse On My Eyes!” First Members Watch @_TrevorC Try Reading @AlfredoPlays’ Mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow” Subjects and Themes:
- Subjects: ➤ Twitter - video - theory - conspiracy - facts - didyouknow - theory - conspiracy - facts - didyouknow
Edition Identifiers:
- Internet Archive ID: twitter-1738255693113630806
Downloads Information:
The book is available for download in "movies" format, the size of the file-s is: 1.19 Mbs, the file-s for this book were downloaded 7 times, the file-s went public at Tue Apr 30 2024.
Available formats:
Archive BitTorrent - Item Tile - JPEG - JPEG Thumb - JSON - MPEG4 - Metadata - Thumbnail - Unknown -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Red Web 🔴🕸 - “I Can See The Pulse On My Eyes!” First Members Watch @_TrevorC Try Reading @AlfredoPlays’ Mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
19Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web
By Reagle, Joseph Michael, author
“I can see the pulse on my eyes!” First members watch @_TrevorC try reading @AlfredoPlays’ mind! #theory #conspiracy #facts #didyouknow #theory #conspiracy #facts #didyouknow https://t.co/vYWsTvNtzk https://t.co/fzmY73yA4b
“Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web” Metadata:
- Title: ➤ Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web
- Author: Reagle, Joseph Michael, author
- Language: English
“Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web” Subjects and Themes:
- Subjects: ➤ Online chat groups - Electronic discussion groups - Blogs -- Social aspects - Internet -- Social aspects - Chatten - Computerunterstützte Kommunikation - Internet - Kommentar - Online-Community - Social Media - Soziologie - Partizipation
Edition Identifiers:
- Internet Archive ID: readingcommentsl0000reag_g7a1
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 762.99 Mbs, the file-s for this book were downloaded 55 times, the file-s went public at Wed Nov 10 2021.
Available formats:
ACS Encrypted PDF - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - EPUB - Item Tile - JPEG Thumb - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Reading The Comments : Likers, Haters, And Manipulators At The Bottom Of The Web at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
20Integration Of Web 2.0 Tools And The CALLA Method To Enhance Reading And Writing Skills In ESL Beginner Students
By Johanna Kathianny Galindo Caicedo
The use of new technologies has allowed ESL teachers to create new opportunities to promote communicative skills and the use of authentic language. Many schools and teachers began to use Web 2.0 tools to deliver their lessons virtually to teach remotely during the pandemic. It has recently become a new trend that is being successfully implemented in many classrooms around the world. With Web 2-0 tools, learners can access audiovisual resources, books, activities, and projects created by their teachers. During class, learners engage in different -activities that promote language development and acquire language skills needed to communicate successfully. In addition, using these digital tools supports the learner's active participation and encourages them to be autonomous and take independent control over their learning process. Integrating the CALLA method of instruction in these lessons allows students to build higher-order thinking skills in ways that challenge and are relevant to the student. According to Herrera & Murry (2016), as a cognitive method, it emphasizes three learning strategies: cognitive, metacognitive, and social affective. Where according to some research, speakers from other languages also develop cross-linguistic skills. ESL teachers need to understand the multiple ways in which the CALLA approach and digital tools can lead to a more communicative classroom. Consequently, this project provides an example of a didactic unit that contains two lessons aimed to develop reading and writing skills in ESL students and assist teachers in acquiring digital skills that can lead them to create their lessons to teach virtually or integrate technology in their classrooms.
“Integration Of Web 2.0 Tools And The CALLA Method To Enhance Reading And Writing Skills In ESL Beginner Students” Metadata:
- Title: ➤ Integration Of Web 2.0 Tools And The CALLA Method To Enhance Reading And Writing Skills In ESL Beginner Students
- Author: ➤ Johanna Kathianny Galindo Caicedo
“Integration Of Web 2.0 Tools And The CALLA Method To Enhance Reading And Writing Skills In ESL Beginner Students” Subjects and Themes:
- Subjects: ➤ education - technology - web 2.0 - CALLA method - reading - writing - ESL
Edition Identifiers:
- Internet Archive ID: ➤ integration-of-web-2.0-tools-and-the-calla-method-to-enhance-reading-and-writing
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 17.38 Mbs, the file-s for this book were downloaded 184 times, the file-s went public at Wed Mar 02 2022.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Integration Of Web 2.0 Tools And The CALLA Method To Enhance Reading And Writing Skills In ESL Beginner Students at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
21CIA Reading Room Cia-rdp75-00001r000100060035-3: O WHAT A TANGLED WEB THE CIA WOVE
By CIA Reading Room
FEB 2 6 1~S7 FOIAb3b Sanitized - Approved For Release : CIA-RD CPYRGHT y ;;ichard Ilcu?icood 1'%a1h11)aton Post Staff Writer t:r ILL i .r.;. t~'../ i' r Ii 1~ o 'r ? ???T _.~. dry 1, ?% '1 .l governmental institutions, or to finance the industrial establishment through economic and military progcams, in- tellectuals, students, educators, trade unionists, journalists and professional men had to be reached directly; through' their private concerns. work of certain American private or. ganizations, it did not act on its own initiative but in accordance with na- tional policies established by the Na- tional Security Council in 1952 through, 1954. Throughout, it acted with the approval of senior Interdepartmental committees, including 'the Secretaries of State and Defense or their relrn. sentatives." The agency also acted with the fill" knowledge and consent of the con;~ri' - sional committees created to ovvr::r?r its operations. Its activities, in spurt, were the public policy, never pliil!k? y announced, of the Government of the 'United States. It was a 'policy, moreover, that had the overt approval and collalArf;tinn Operating from that , rcnti e, the, ?.I CIA.began in the late 194,"S and early' 1950s a vast program thirt was to in. ? volve not only such ri;~:r, as Pisani but most of the major private in tit.iilions in American life. The V %1011L of that involvement and the subterfuges that were used to, bring t about are now being dimly grasped as a result of the revelations of the past two weeks. What is known ',s the press; and the public now is sti:1 far less lhan what t.c:agence Agency was horn, a brawl. Corsican from the docks of Mar- - seines was recruited to perform a serv- ice for the 17restern Allies, His name was hci:?i Pisani. His task; was to sec to it, by whatever means seemed appropriate, that Communists i among the longshoremen of .Marseilles would not impede the unloading of .Marshall Plan cargoes in France. Pisani did the job and got rich in the process. His CIA retainer was $250,000 i11 cash. lt was refreshed from time to time in the years that followed and Pisaui's stature in the rough private world in which he moved increased ac- cordingly. He became a symbol of the power that private men and private 'organizations often wield in the intri- cate game of international affairs. It was evident to the CIA from the moment it commenced operations that is not known, whit:]. ;s to say it is likely ?j of what Richard riovere has described that the surf at e ? has been barely as the American Establishment, that scratched. But'ccl7aiu basic facts seem loose coalition of-lawyers, industrialists clear enough. - and financiers who are thought?,'rightly The first is ;hat many millions of or wrongly, subtly to guide the course dollars of public money have been of public affairs in the United States. used by the CIA, with, no public ac- ('~ counting, to in!'luenec the political and A Binsi11C55 Co111ietalo11 deological po>?ture of private groups ALLEN DULLES, who ran the CIA h roughout the world, Including many ,t, in the' 1950s, was a product of the vithin the United States, How much T,ew York law, firm of Sullivan & noney is involved is such a tightly Cromwell, which has always epitomized field secret that the President of the the Establishment. While be was ?in. nited States, as of last week, appar charge at the Agency, his business and ntly had no inklinc of the answer- my about $15 million has been traced, ! w""-ores were useu extelisively ut, unsubstantiated rumors place the ur tragic the CIA to achieve its secret os es. rue figure in the hundreds of millions. 1 p The Wall Street investment firm of I op-Level Decision Wood, 'Struthers _& Winthrop provideda men like Pisani and organizations lie tic it r,e union nloVelnellt had an im- i ;nciisciy important role to play in what J?'csidci.t i cnnedy was to call "the ion; twilight s~rugg1e" between the?ad- verUaries in the cold war. roach HE SECOND 'self-evident fact, is ""? ulm \4A agent, i IIans Tofte, by. Issuing hiM Credentials that the decision to fight the cold as. an emp'ioye of the firm, Samue 'ar covertly through private groups ' as no whimsical, unilateral decision { y the men who have run the CIA for ie,past 20 years. As Under Secretary enough for the United; the President last week: j A arcs w u::,1 i attic to s en hen " M a th cntral Tx L li ani tze r , Pgu~, KJtPP75-0000'~R000100060.035-3
“CIA Reading Room Cia-rdp75-00001r000100060035-3: O WHAT A TANGLED WEB THE CIA WOVE” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp75-00001r000100060035-3: O WHAT A TANGLED WEB THE CIA WOVE
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp75-00001r000100060035-3
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1.84 Mbs, the file-s for this book were downloaded 33 times, the file-s went public at Wed Aug 09 2023.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp75-00001r000100060035-3: O WHAT A TANGLED WEB THE CIA WOVE at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
22The Cool Web : The Pattern Of Children's Reading
By Meek, Margaret;Warlow, Aidan;Barton, Griselda
FEB 2 6 1~S7 FOIAb3b Sanitized - Approved For Release : CIA-RD CPYRGHT y ;;ichard Ilcu?icood 1'%a1h11)aton Post Staff Writer t:r ILL i .r.;. t~'../ i' r Ii 1~ o 'r ? ???T _.~. dry 1, ?% '1 .l governmental institutions, or to finance the industrial establishment through economic and military progcams, in- tellectuals, students, educators, trade unionists, journalists and professional men had to be reached directly; through' their private concerns. work of certain American private or. ganizations, it did not act on its own initiative but in accordance with na- tional policies established by the Na- tional Security Council in 1952 through, 1954. Throughout, it acted with the approval of senior Interdepartmental committees, including 'the Secretaries of State and Defense or their relrn. sentatives." The agency also acted with the fill" knowledge and consent of the con;~ri' - sional committees created to ovvr::r?r its operations. Its activities, in spurt, were the public policy, never pliil!k? y announced, of the Government of the 'United States. It was a 'policy, moreover, that had the overt approval and collalArf;tinn Operating from that , rcnti e, the, ?.I CIA.began in the late 194,"S and early' 1950s a vast program thirt was to in. ? volve not only such ri;~:r, as Pisani but most of the major private in tit.iilions in American life. The V %1011L of that involvement and the subterfuges that were used to, bring t about are now being dimly grasped as a result of the revelations of the past two weeks. What is known ',s the press; and the public now is sti:1 far less lhan what t.c:agence Agency was horn, a brawl. Corsican from the docks of Mar- - seines was recruited to perform a serv- ice for the 17restern Allies, His name was hci:?i Pisani. His task; was to sec to it, by whatever means seemed appropriate, that Communists i among the longshoremen of .Marseilles would not impede the unloading of .Marshall Plan cargoes in France. Pisani did the job and got rich in the process. His CIA retainer was $250,000 i11 cash. lt was refreshed from time to time in the years that followed and Pisaui's stature in the rough private world in which he moved increased ac- cordingly. He became a symbol of the power that private men and private 'organizations often wield in the intri- cate game of international affairs. It was evident to the CIA from the moment it commenced operations that is not known, whit:]. ;s to say it is likely ?j of what Richard riovere has described that the surf at e ? has been barely as the American Establishment, that scratched. But'ccl7aiu basic facts seem loose coalition of-lawyers, industrialists clear enough. - and financiers who are thought?,'rightly The first is ;hat many millions of or wrongly, subtly to guide the course dollars of public money have been of public affairs in the United States. used by the CIA, with, no public ac- ('~ counting, to in!'luenec the political and A Binsi11C55 Co111ietalo11 deological po>?ture of private groups ALLEN DULLES, who ran the CIA h roughout the world, Including many ,t, in the' 1950s, was a product of the vithin the United States, How much T,ew York law, firm of Sullivan & noney is involved is such a tightly Cromwell, which has always epitomized field secret that the President of the the Establishment. While be was ?in. nited States, as of last week, appar charge at the Agency, his business and ntly had no inklinc of the answer- my about $15 million has been traced, ! w""-ores were useu extelisively ut, unsubstantiated rumors place the ur tragic the CIA to achieve its secret os es. rue figure in the hundreds of millions. 1 p The Wall Street investment firm of I op-Level Decision Wood, 'Struthers _& Winthrop provideda men like Pisani and organizations lie tic it r,e union nloVelnellt had an im- i ;nciisciy important role to play in what J?'csidci.t i cnnedy was to call "the ion; twilight s~rugg1e" between the?ad- verUaries in the cold war. roach HE SECOND 'self-evident fact, is ""? ulm \4A agent, i IIans Tofte, by. Issuing hiM Credentials that the decision to fight the cold as. an emp'ioye of the firm, Samue 'ar covertly through private groups ' as no whimsical, unilateral decision { y the men who have run the CIA for ie,past 20 years. As Under Secretary enough for the United; the President last week: j A arcs w u::,1 i attic to s en hen " M a th cntral Tx L li ani tze r , Pgu~, KJtPP75-0000'~R000100060.035-3
“The Cool Web : The Pattern Of Children's Reading” Metadata:
- Title: ➤ The Cool Web : The Pattern Of Children's Reading
- Author: ➤ Meek, Margaret;Warlow, Aidan;Barton, Griselda
- Language: English
“The Cool Web : The Pattern Of Children's Reading” Subjects and Themes:
- Subjects: ➤ Children's literature - Books and reading - Children's literature -- Authorship - Children's literature -- History and criticism - Books and reading -- Juvenile literature
Edition Identifiers:
- Internet Archive ID: coolwebpatternof0000meek
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1045.25 Mbs, the file-s for this book were downloaded 80 times, the file-s went public at Fri Mar 23 2018.
Available formats:
ACS Encrypted EPUB - ACS Encrypted PDF - Abbyy GZ - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - EPUB - Item Tile - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find The Cool Web : The Pattern Of Children's Reading at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
23CIA Reading Room Cia-rdp90-00552r000606560104-5: THE LIBYAN CONNECTION: WEB OF INTRIGUE, TERROR
By CIA Reading Room
Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5 STAT BOSTON GLOBE 31 May 1981 For finer croon Beret- tied to regime in, murder-. case By Ben Bradlee and Stephen Kurkjian Globe Staff _ A former Green Beret. recently-charged in last fall's attempted murder of a prominent Libyan dis- sident in Colorado. spent. three. months. in Libya last summer on official business for the Libyan gov- ernment. accordin g toan official involved in the in- vestigation. ?. In addition, investigators on the case have es- tablished links between the ex-Green Beret and a former CIA agent who Is already under federal in- dictment. in connection with using American mer- cenaries to run a terrorist training program for Lib- - car. President Moammar Khadafy.. The ex-Green-Beret. Eugene A. Tafoya, 45, of Truth or Consequences. N.M., is awaiting trial in Fort Collins. Colo., on charges he conspired and at- tempted to murder Faisal A. Zagallai, a Libyan graduate student at Colorado State University, and a leader amongantl-Khadafy Libyans in the United States. Tafoya is being held in lieu of -$1 million bond, and no trial date has been set. ' The shooting of Zagallal and the arrest last month of Tafoya have taken 'W .t ihternattonal sig- nificance in the ' wake of retorts that the arrest served as the catalyst for the Reagan Administra- tion's recent decision' to close the Libyan embassy in Washington as part. of aneffort,to expose the Libyan government's use_of terrorism as a political .instrument. Tripoli ,has?annouriced: for example. that it ordered the shooting of Zagallai.. Zagallai was shot twice in `the:head Oct_ 14 by a man who gained access to his home by-identifying himself as a job recruiter. Zagallai survived the shooting. but was blinded in one eye, and carries a .22 bullet in his skull: Tafoya, a decorated 25-year veteran of the Ma- rines and the Special Forces, as well as a member of a prominent New Mexico family, was arrested at home April 22 after a pistol found near the scene of the shooting was traced to him. Among the items confiscated in the raid of Tafoya's home were four passports in his name.I according to an official involved in the invests-~ gation. One of the passports showed that Tat #oya made three visits to Libya in 1980, two be-1 fore. and one after the October shooting of Za- gallai, the official, who has seen the passport., Said. - . .,... . . . ? .1 -- The longest of the three visits lasted froml July to September 1980.-According to the offs cial, the passport carries the word "mission" in Arabic, which designates that the holder is in the country at the Invitation of the government and on official government business. What Tatbya was doing in Libya, and whom he met with has not been disclosed. However, investigators are looking into the possibility that, while he was there. Tafoya conferred with former CIA agent Edwin P. Wilson. Wilson and another ex-CIA man, Francis E. Terpil, were In- dicted In April 1980 by a Washington federal `grand jury on charges of illegally supplying ex- ,plosives. and training terrorists for the Libyan government. Both have fled the country to avoids prosecution, and Wilson is now in Libya. Found in Tafoya's residence at the time of his arrest was Wilson's business card. The card was for the Tripoli office of a Swiss-based com- pany that Wilson controls, with its telephone number.. Also on- the card were the phone num- bers for businesses Wilson controlled in London and Washington. D.C. Contacted by telephone In Tripoli. Friday, Wilson refused to be interviewed. Asked by a Globe reporter whether he knew Tafoya, Wilson said "I don't know anything about that at all," and-then hung up. 'About 15 local and federal officers, including] 10 FBI agents and a police bomb squad, raided Tafoya's residence in Truth or Consequences. and arrested him without incident. According to a court affidavit and a source involved in the investigation, also uncovered in the raid were writings of Tafoya that mentioned Wilson's. name several times. In addition, the raid turned up: 0 A passport that showed that in July 1980, before entering Libya. Tafoya visited the Medi-i terranean island of Malta. where Wilson has a villa. In August 1980, Wilson was detained in Malta at the request of the US State Depart- ment. But then, in a diplomatic snafu. he was released within 48 hours ;without US officials being informed.::. 0 Tafoya's telephone records showing sever- al phone calls to Libya. Investigators are trying to determine to whom the calls were made. L.O1VTrIVTJEJ Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5
“CIA Reading Room Cia-rdp90-00552r000606560104-5: THE LIBYAN CONNECTION: WEB OF INTRIGUE, TERROR” Metadata:
- Title: ➤ CIA Reading Room Cia-rdp90-00552r000606560104-5: THE LIBYAN CONNECTION: WEB OF INTRIGUE, TERROR
- Author: CIA Reading Room
- Language: English
Edition Identifiers:
- Internet Archive ID: ➤ cia-readingroom-document-cia-rdp90-00552r000606560104-5
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1.88 Mbs, the file-s for this book were downloaded 4 times, the file-s went public at Wed May 28 2025.
Available formats:
Additional Text PDF - Archive BitTorrent - DjVuTXT - Djvu XML - Image Container PDF - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find CIA Reading Room Cia-rdp90-00552r000606560104-5: THE LIBYAN CONNECTION: WEB OF INTRIGUE, TERROR at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
24The Cool Web : The Pattern Of Children's Reading
Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5 STAT BOSTON GLOBE 31 May 1981 For finer croon Beret- tied to regime in, murder-. case By Ben Bradlee and Stephen Kurkjian Globe Staff _ A former Green Beret. recently-charged in last fall's attempted murder of a prominent Libyan dis- sident in Colorado. spent. three. months. in Libya last summer on official business for the Libyan gov- ernment. accordin g toan official involved in the in- vestigation. ?. In addition, investigators on the case have es- tablished links between the ex-Green Beret and a former CIA agent who Is already under federal in- dictment. in connection with using American mer- cenaries to run a terrorist training program for Lib- - car. President Moammar Khadafy.. The ex-Green-Beret. Eugene A. Tafoya, 45, of Truth or Consequences. N.M., is awaiting trial in Fort Collins. Colo., on charges he conspired and at- tempted to murder Faisal A. Zagallai, a Libyan graduate student at Colorado State University, and a leader amongantl-Khadafy Libyans in the United States. Tafoya is being held in lieu of -$1 million bond, and no trial date has been set. ' The shooting of Zagallal and the arrest last month of Tafoya have taken 'W .t ihternattonal sig- nificance in the ' wake of retorts that the arrest served as the catalyst for the Reagan Administra- tion's recent decision' to close the Libyan embassy in Washington as part. of aneffort,to expose the Libyan government's use_of terrorism as a political .instrument. Tripoli ,has?annouriced: for example. that it ordered the shooting of Zagallai.. Zagallai was shot twice in `the:head Oct_ 14 by a man who gained access to his home by-identifying himself as a job recruiter. Zagallai survived the shooting. but was blinded in one eye, and carries a .22 bullet in his skull: Tafoya, a decorated 25-year veteran of the Ma- rines and the Special Forces, as well as a member of a prominent New Mexico family, was arrested at home April 22 after a pistol found near the scene of the shooting was traced to him. Among the items confiscated in the raid of Tafoya's home were four passports in his name.I according to an official involved in the invests-~ gation. One of the passports showed that Tat #oya made three visits to Libya in 1980, two be-1 fore. and one after the October shooting of Za- gallai, the official, who has seen the passport., Said. - . .,... . . . ? .1 -- The longest of the three visits lasted froml July to September 1980.-According to the offs cial, the passport carries the word "mission" in Arabic, which designates that the holder is in the country at the Invitation of the government and on official government business. What Tatbya was doing in Libya, and whom he met with has not been disclosed. However, investigators are looking into the possibility that, while he was there. Tafoya conferred with former CIA agent Edwin P. Wilson. Wilson and another ex-CIA man, Francis E. Terpil, were In- dicted In April 1980 by a Washington federal `grand jury on charges of illegally supplying ex- ,plosives. and training terrorists for the Libyan government. Both have fled the country to avoids prosecution, and Wilson is now in Libya. Found in Tafoya's residence at the time of his arrest was Wilson's business card. The card was for the Tripoli office of a Swiss-based com- pany that Wilson controls, with its telephone number.. Also on- the card were the phone num- bers for businesses Wilson controlled in London and Washington. D.C. Contacted by telephone In Tripoli. Friday, Wilson refused to be interviewed. Asked by a Globe reporter whether he knew Tafoya, Wilson said "I don't know anything about that at all," and-then hung up. 'About 15 local and federal officers, including] 10 FBI agents and a police bomb squad, raided Tafoya's residence in Truth or Consequences. and arrested him without incident. According to a court affidavit and a source involved in the investigation, also uncovered in the raid were writings of Tafoya that mentioned Wilson's. name several times. In addition, the raid turned up: 0 A passport that showed that in July 1980, before entering Libya. Tafoya visited the Medi-i terranean island of Malta. where Wilson has a villa. In August 1980, Wilson was detained in Malta at the request of the US State Depart- ment. But then, in a diplomatic snafu. he was released within 48 hours ;without US officials being informed.::. 0 Tafoya's telephone records showing sever- al phone calls to Libya. Investigators are trying to determine to whom the calls were made. L.O1VTrIVTJEJ Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5
“The Cool Web : The Pattern Of Children's Reading” Metadata:
- Title: ➤ The Cool Web : The Pattern Of Children's Reading
- Language: English
“The Cool Web : The Pattern Of Children's Reading” Subjects and Themes:
- Subjects: ➤ Children -- Books and reading -- Great Britain - Children's literature -- Authorship - Children's literature -- History and criticism
Edition Identifiers:
- Internet Archive ID: coolwebpatternof0000unse
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 1229.77 Mbs, the file-s for this book were downloaded 28 times, the file-s went public at Thu Jun 09 2022.
Available formats:
ACS Encrypted PDF - AVIF Thumbnails ZIP - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Dublin Core - Item Tile - JPEG Thumb - JSON - LCP Encrypted EPUB - LCP Encrypted PDF - Log - MARC - MARC Binary - Metadata - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - RePublisher Final Processing Log - RePublisher Initial Processing Log - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find The Cool Web : The Pattern Of Children's Reading at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
25No EBook Available AbeBooks Find In A Library All Sellers » Shop For Books On Google Play Browse The World's Largest EBookstore And Start Reading Today On The Web, Tablet, Phone, Or Ereader. Go To Google Play Now » Books On Google Play Roma Sotterranea Cristiana (Nuova Serie). Descrizione Analitica Dei Monumenti Esistenti Negli Antichi Cimiteri Suburbani
By Marucchi, Orazio
Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5 STAT BOSTON GLOBE 31 May 1981 For finer croon Beret- tied to regime in, murder-. case By Ben Bradlee and Stephen Kurkjian Globe Staff _ A former Green Beret. recently-charged in last fall's attempted murder of a prominent Libyan dis- sident in Colorado. spent. three. months. in Libya last summer on official business for the Libyan gov- ernment. accordin g toan official involved in the in- vestigation. ?. In addition, investigators on the case have es- tablished links between the ex-Green Beret and a former CIA agent who Is already under federal in- dictment. in connection with using American mer- cenaries to run a terrorist training program for Lib- - car. President Moammar Khadafy.. The ex-Green-Beret. Eugene A. Tafoya, 45, of Truth or Consequences. N.M., is awaiting trial in Fort Collins. Colo., on charges he conspired and at- tempted to murder Faisal A. Zagallai, a Libyan graduate student at Colorado State University, and a leader amongantl-Khadafy Libyans in the United States. Tafoya is being held in lieu of -$1 million bond, and no trial date has been set. ' The shooting of Zagallal and the arrest last month of Tafoya have taken 'W .t ihternattonal sig- nificance in the ' wake of retorts that the arrest served as the catalyst for the Reagan Administra- tion's recent decision' to close the Libyan embassy in Washington as part. of aneffort,to expose the Libyan government's use_of terrorism as a political .instrument. Tripoli ,has?annouriced: for example. that it ordered the shooting of Zagallai.. Zagallai was shot twice in `the:head Oct_ 14 by a man who gained access to his home by-identifying himself as a job recruiter. Zagallai survived the shooting. but was blinded in one eye, and carries a .22 bullet in his skull: Tafoya, a decorated 25-year veteran of the Ma- rines and the Special Forces, as well as a member of a prominent New Mexico family, was arrested at home April 22 after a pistol found near the scene of the shooting was traced to him. Among the items confiscated in the raid of Tafoya's home were four passports in his name.I according to an official involved in the invests-~ gation. One of the passports showed that Tat #oya made three visits to Libya in 1980, two be-1 fore. and one after the October shooting of Za- gallai, the official, who has seen the passport., Said. - . .,... . . . ? .1 -- The longest of the three visits lasted froml July to September 1980.-According to the offs cial, the passport carries the word "mission" in Arabic, which designates that the holder is in the country at the Invitation of the government and on official government business. What Tatbya was doing in Libya, and whom he met with has not been disclosed. However, investigators are looking into the possibility that, while he was there. Tafoya conferred with former CIA agent Edwin P. Wilson. Wilson and another ex-CIA man, Francis E. Terpil, were In- dicted In April 1980 by a Washington federal `grand jury on charges of illegally supplying ex- ,plosives. and training terrorists for the Libyan government. Both have fled the country to avoids prosecution, and Wilson is now in Libya. Found in Tafoya's residence at the time of his arrest was Wilson's business card. The card was for the Tripoli office of a Swiss-based com- pany that Wilson controls, with its telephone number.. Also on- the card were the phone num- bers for businesses Wilson controlled in London and Washington. D.C. Contacted by telephone In Tripoli. Friday, Wilson refused to be interviewed. Asked by a Globe reporter whether he knew Tafoya, Wilson said "I don't know anything about that at all," and-then hung up. 'About 15 local and federal officers, including] 10 FBI agents and a police bomb squad, raided Tafoya's residence in Truth or Consequences. and arrested him without incident. According to a court affidavit and a source involved in the investigation, also uncovered in the raid were writings of Tafoya that mentioned Wilson's. name several times. In addition, the raid turned up: 0 A passport that showed that in July 1980, before entering Libya. Tafoya visited the Medi-i terranean island of Malta. where Wilson has a villa. In August 1980, Wilson was detained in Malta at the request of the US State Depart- ment. But then, in a diplomatic snafu. he was released within 48 hours ;without US officials being informed.::. 0 Tafoya's telephone records showing sever- al phone calls to Libya. Investigators are trying to determine to whom the calls were made. L.O1VTrIVTJEJ Sanitized Copy Approved for Release 2010/08/17: CIA-RDP90-00552R000606560104-5
“No EBook Available AbeBooks Find In A Library All Sellers » Shop For Books On Google Play Browse The World's Largest EBookstore And Start Reading Today On The Web, Tablet, Phone, Or Ereader. Go To Google Play Now » Books On Google Play Roma Sotterranea Cristiana (Nuova Serie). Descrizione Analitica Dei Monumenti Esistenti Negli Antichi Cimiteri Suburbani” Metadata:
- Title: ➤ No EBook Available AbeBooks Find In A Library All Sellers » Shop For Books On Google Play Browse The World's Largest EBookstore And Start Reading Today On The Web, Tablet, Phone, Or Ereader. Go To Google Play Now » Books On Google Play Roma Sotterranea Cristiana (Nuova Serie). Descrizione Analitica Dei Monumenti Esistenti Negli Antichi Cimiteri Suburbani
- Author: Marucchi, Orazio
- Language: ita
Edition Identifiers:
- Internet Archive ID: gtu_32400001642002_2
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 358.50 Mbs, the file-s for this book were downloaded 96 times, the file-s went public at Sun Apr 16 2023.
Available formats:
Archive BitTorrent - Cloth Cover Detection Log - DjVuTXT - Djvu XML - Extra Metadata JSON - Item Tile - JPEG Thumb - JSON - Log - Metadata - Metadata Log - OCR Page Index - OCR Search Text - PNG - Page Numbers JSON - Scandata - Single Page Original JP2 Tar - Single Page Processed JP2 ZIP - Text PDF - Title Page Detection Log - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find No EBook Available AbeBooks Find In A Library All Sellers » Shop For Books On Google Play Browse The World's Largest EBookstore And Start Reading Today On The Web, Tablet, Phone, Or Ereader. Go To Google Play Now » Books On Google Play Roma Sotterranea Cristiana (Nuova Serie). Descrizione Analitica Dei Monumenti Esistenti Negli Antichi Cimiteri Suburbani at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
26Reading The Comments: Likers, Haters, And Manipulators At The Bottom Of The Web
By Reagle, Joseph
What we can learn about human nature from the informative, manipulative, confusing, and amusing messages at the bottom of the web. Online comment can be informative or misleading, entertaining or maddening. Haters and manipulators often seem to monopolize the conversation. Some comments are off-topic, or even topic-less. In this book, Joseph Reagle urges us to read the comments. Conversations “on the bottom half of the Internet,” he argues, can tell us much about human nature and social behavior. Reagle visits communities of Amazon reviewers, fan fiction authors, online learners, scammers, freethinkers, and mean kids. He shows how comment can inform us (through reviews), improve us (through feedback), manipulate us (through fakery), alienate us (through hate), shape us (through social comparison), and perplex us. He finds pre-Internet historical antecedents of online comment in Michelin stars, professional criticism, and the wisdom of crowds. He discusses the techniques of online fakery (distinguishing makers, fakers, and takers), describes the emotional work of receiving and giving feedback, and examines the culture of trolls and haters, bullying, and misogyny. He considers the way comment—a nonstop stream of social quantification and ranking—affects our self-esteem and well-being. And he examines how comment is puzzling—short and asynchronous, these messages can be slap-dash, confusing, amusing, revealing, and weird, shedding context in their passage through the Internet, prompting readers to comment in turn, “WTF?!?”
“Reading The Comments: Likers, Haters, And Manipulators At The Bottom Of The Web” Metadata:
- Title: ➤ Reading The Comments: Likers, Haters, And Manipulators At The Bottom Of The Web
- Author: Reagle, Joseph
- Language: English
Edition Identifiers:
- Internet Archive ID: mit_press_book_9780262328876
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 115.34 Mbs, the file-s for this book were downloaded 114 times, the file-s went public at Sun Aug 06 2023.
Available formats:
Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - OCR Page Index - OCR Search Text - Page Numbers JSON - Scandata - Single Page Processed JP2 ZIP - Text PDF - chOCR - hOCR -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Reading The Comments: Likers, Haters, And Manipulators At The Bottom Of The Web at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
Buy “Reading The Web” online:
Shop for “Reading The Web” on popular online marketplaces.
- Ebay: New and used books.