Downloads & Free Reading Options - Results

Working With No Data by Thomas Oden Lambdin

Read "Working With No Data" by Thomas Oden Lambdin through these free online access and download options.

Search for Downloads

Search by Title or Author

Books Results

Source: The Internet Archive

The internet Archive Search Results

Available books for downloads and borrow from The internet Archive

1Working With No Data : Semitic And Egyptian Studies Presented To Thomas O. Lambdin

“Working With No Data : Semitic And Egyptian Studies Presented To Thomas O. Lambdin” Metadata:

  • Title: ➤  Working With No Data : Semitic And Egyptian Studies Presented To Thomas O. Lambdin
  • Language: English

“Working With No Data : Semitic And Egyptian Studies Presented To Thomas O. Lambdin” Subjects and Themes:

Edition Identifiers:

Downloads Information:

The book is available for download in "texts" format, the size of the file-s is: 864.71 Mbs, the file-s for this book were downloaded 66 times, the file-s went public at Mon Jan 30 2023.

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 - 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 - chOCR - hOCR -

Related Links:

Online Marketplaces

Find Working With No Data : Semitic And Egyptian Studies Presented To Thomas O. Lambdin at online marketplaces:


2The 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  &gt;  How-Tos  &gt; 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-&gt; Open-&gt; 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-&gt; Add-&gt; 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 &gt; Options  under  Debugging &gt; 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-&gt; Options-&gt; Debugging-&gt; General-&gt;  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 &gt; 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 &gt; Windows &gt; 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 &gt; 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. &lt; for &lt; and \. for a literal dot. Example: &lt; Function &gt; &lt; Name &gt; operator new &lt;/ Name &gt; &lt; Action &gt; NoStepInto &lt;/ Action &gt; &lt;/ Function &gt; &lt; Function &gt; &lt; Name &gt; operator delete &lt;/ Name &gt; &lt; Action &gt; NoStepInto &lt;/ Action &gt; &lt;/ Function &gt; &lt;!-- Skip everything in std --&gt; &lt; Function &gt; &lt; Name &gt; std::.* &lt;/ Name &gt; &lt; Action &gt; NoStepInto &lt;/ Action &gt; &lt;/ Function &gt; &lt;!-- all methods on WebKit OwnPtr and variants, ... WTF::*Ptr&lt;*&gt;::* --&gt; &lt; Function &gt; &lt; Name &gt; WTF::.*Ptr&lt;.*&gt;::.* &lt;/ Name &gt; &lt; Action &gt; NoStepInto &lt;/ Action &gt; &lt;/ Function &gt; 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 :&lt;my browser pid&gt; &gt; 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:

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:

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:


3ERIC ED556483: Postsecondary Transition And English Learners With Disabilities: Data From The Second National Longitudinal Transition Study. WCER Working Paper No. 2014-4

By

Although English Learners (ELs) constitute one of the fastest growing subpopulations in U.S. schools, little is known about the postschool outcomes of ELs who are also students with disabilities (ELSWD). This descriptive study examines a nationally representative sample of ELSWD through a secondary analysis of the National Longitudinal Transition Study (NLTS2). Descriptive statistical analyses were used to identify ELSWDs' sociodemographic characteristics, education and transition program characteristics, and postschool outcomes, as compared to their non-EL peers with disabilities included in the NLTS2. Results confirmed disproportionate identification by race/ethnicity for Latinos and European American as ELSWD. Findings also illustrated alignment between transition planning and courses taken, yet postschool employment was significantly lower for ELSWD. Implications for research include the need to develop methods that address ELSWD disproportionality in high school and transition outcome variables unique to this population. Implications for practice include the need to develop teacher preparation programs that apprise secondary special educators of ELSWD characteristics and their transition-related preferences, strengths, and needs.

“ERIC ED556483: Postsecondary Transition And English Learners With Disabilities: Data From The Second National Longitudinal Transition Study. WCER Working Paper No. 2014-4” Metadata:

  • Title: ➤  ERIC ED556483: Postsecondary Transition And English Learners With Disabilities: Data From The Second National Longitudinal Transition Study. WCER Working Paper No. 2014-4
  • Author:
  • Language: English

“ERIC ED556483: Postsecondary Transition And English Learners With Disabilities: Data From The Second National Longitudinal Transition Study. WCER Working Paper No. 2014-4” Subjects and Themes:

Edition Identifiers:

Downloads Information:

The book is available for download in "texts" format, the size of the file-s is: 15.89 Mbs, the file-s for this book were downloaded 86 times, the file-s went public at Sat Apr 16 2016.

Available formats:
Abbyy GZ - Animated GIF - Archive BitTorrent - DjVuTXT - Djvu XML - Item Tile - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -

Related Links:

Online Marketplaces

Find ERIC ED556483: Postsecondary Transition And English Learners With Disabilities: Data From The Second National Longitudinal Transition Study. WCER Working Paper No. 2014-4 at online marketplaces:


4ERIC ED612118: Estimating Test-Score Growth With A Gap Year In The Data. Working Paper No. 248-0121

By

We evaluate the feasibility of estimating test-score growth with a gap year in testing data, informing the scenario when state testing resumes after the 2020 COVID-19-induced test stoppage. Our research design is to simulate a gap year in testing using pre-COVID-19 data--when a true test gap did not occur--which facilitates comparisons of district- and school-level growth measures that are estimated with and without a gap year. We find that growth estimates based on the full data and gap-year data are generally similar, and our results highlight an advantage of using comprehensive growth models with rich controls for student and schooling circumstances. With the caveat that there is looming uncertainty about which students will be tested in public schools when testing resumes, and how they will be tested, our findings establish the potential for estimating useful growth measures with a gap year in testing.

“ERIC ED612118: Estimating Test-Score Growth With A Gap Year In The Data. Working Paper No. 248-0121” Metadata:

  • Title: ➤  ERIC ED612118: Estimating Test-Score Growth With A Gap Year In The Data. Working Paper No. 248-0121
  • Author:
  • Language: English

“ERIC ED612118: Estimating Test-Score Growth With A Gap Year In The Data. Working Paper No. 248-0121” Subjects and Themes:

Edition Identifiers:

Downloads Information:

The book is available for download in "texts" format, the size of the file-s is: 21.66 Mbs, the file-s for this book were downloaded 40 times, the file-s went public at Thu Jul 14 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:

Online Marketplaces

Find ERIC ED612118: Estimating Test-Score Growth With A Gap Year In The Data. Working Paper No. 248-0121 at online marketplaces:


5TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation

By

Government Publishing Office U.S. Congress Senate Committee on Appropriations TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered in Congress Arlen Specter United States Senator 1981-2011 a ? Compiled under the direction of the Joint Committee on Printing CONTENTS Biography............................................. v Farewell to the Senate................................ xi Proceedings in the Senate: Tributes by Senators: Akaka, Daniel K., of Hawaii.................... 12 Alexander, Lamar, of Tennessee................. 3 Bennet, Michael F., of Colorado................ 21 Boxer, Barbara, of California.................. 23 Casey, Robert P., Jr., of Pennsylvania......... 15, 24 Cochran, Thad, of Mississippi.................. 19 Conrad, Kent, of North Dakota.................. 8 Dodd, Christopher J., of Connecticut........... 11 Durbin, Richard, of Illinois................... 11, 17 Enzi, Michael B., of Wyoming................... 9 Harkin, Tom, of Iowa........................... 22 Hatch, Orrin G., of Utah....................... 13 Levin, Carl, of Michigan....................... 5 Murkowski, Lisa, of Alaska..................... 26 Reed, Jack, of Rhode Island.................... 5 Reid, Harry, of Nevada......................... 5, 7 Sessions, Jeff, of Alabama..................... 20 Udall, Mark, of Colorado....................... 22 Warner, Mark R., of Virginia................... 5 BIOGRAPHY Since first elected in 1980, Arlen Specter has brought rugged individualism and fierce independence learned from his youth on the Kansas plains to become a leading Senate moderate. His work as Philadelphia's tough district attorney gave him insights to write the Terrorist Prosecution Act, the Armed Career Criminal Act, and coauthor the Second Chance Act. His legal background and experience in constitutional law provided the skills to serve as Judiciary chairman during the confirmation hearings of Chief Justice Roberts and Justice Alito. In earlier confirmation hearings he had the courage to cross party lines in opposing Judge Bork and disagreeing with conventional wisdom in supporting Justice Thomas after dissecting the contradictory and highly charged testimony. As a consummate legislator, he has counseled compromise and conciliation in a Congress that has established new records for partisan discord. In foreign affairs, he has advocated dialogue and accommodation as an antidote to belligerency and saber rattling. Arlen Specter's five terms have made him the longest serving U.S. Senator in Pennsylvania's history. A voice of reason, his independence and balance have won endorsements from the AFL-CIO and high marks from the U.S. Chamber of Commerce, the National Association of Manufacturers, and the Americans for Tax Reform. Time magazine listed him among the Ten Best Senators in 2006. Knowlegis rated him the second most powerful Senator in 2006 behind only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer editorial stated: ''Senator Arlen Specter has more clout than some sovereign nations.'' Senator Specter attributes his zeal for public service to his experience as a child when he saw the government mistreat his father, Harry Specter, who migrated to the United States from Russia in 1911. Private Specter, serving in World War I in the infantry, was seriously wounded in action in France's Argonne Forest. When the government broke its promise to pay World War I veterans a 00 bonus, the veterans marched on Washington. President Hoover called out the Army which fired on and killed veterans on the Mall in one of the blackest days in American history. As a metaphor, Senator Specter says he has been on his way to Washington ever since to get his father's bonus and since he hasn't gotten it yet, he's running for reelection. The incident over his father's bonus has made Arlen Specter a fierce advocate for veterans' benefits and the ''little guy'' in his battles with the Federal Government. From his immigrant parents, Arlen Specter learned work ethics the hard way. His father, Harry Specter, who was a peddler, took 5-year-old Arlen to small Kansas towns selling cantaloupes door to door with a small basket in hand. In his dad's junkyard in Russell, KS, 16-year-old Arlen Specter cut down oil derricks with an acetylene torch and loaded scrap iron into rail freight cars headed for the smelter. His credentials include votes for the line-item veto and a constitutional amendment for a balanced budget. As a two-term Philadelphia district attorney, he fought for tough sentences for tough criminals and later, in the Senate, wrote groundbreaking legislation providing for life sentences for three-time recidivists on violent crimes. Since 1981, he has played a significant role in Supreme Court nomination hearings, for Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, and Judge Bork. Notwithstanding debilitating chemotherapy treatments in 2005, he stayed on the job as chairman of the Judiciary Committee to preside over historic Supreme Court confirmation hearings. His work on the Judiciary Committee has included writing significant legislation on dealing with constitutional law, civil rights, and privacy. As a senior member of the Appropriations Committee, he led the fight to increase funding for the National Institutes of Health from 2 billion to 0 billion to expand medical research to find cures for cancer, heart disease, Alzheimer's, Parkinson's, and other maladies. He has supported expanding health care for seniors and children and has proposed legislation to cover the almost 50 million Americans who do not have health insurance. Because Senator Specter is keenly aware of the importance of understanding the younger generation, he often visits and speaks at universities and high schools. He credits his parents, both immigrants, with emphasizing the importance of education which has enabled his brother, two sisters, and himself to share in the American dream. To empower others with access to education, he led the fight on the Appropriations Subcommittee to increase Federal spending by 138 percent and raise funding for scholarships and student loans. Constituent service and promoting Pennsylvania's economic interests have been the hallmarks of Senator Specter's Senate career. He maintained offices in Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, and the Lehigh Valley to help residents of those areas who needed assistance to cut Washington's redtape. From his experience as a teenager working on a farm in Kansas, the State where he was born, Senator Specter has understood and worked on the problems of Pennsylvania's farmers from his position on the Appropriations Subcommittee on Agriculture. He frequently argues in the International Trade Commission to assist the steel industry from being deluged with unfair foreign imports. His proposed legislation, endorsed by both business and labor, would create a private right of action in Federal courts to stop subsidized or dumped products from being imported into the United States. He has supported the coal industry by promoting legislation for clean coal technology and securing 00 million for a Schuylkill County project to turn sludge into high octane, environmentally safe gasoline. Recognizing the long-term effects of global warming, he has cosponsored the Bingaman-Specter bill to reduce harm from carbon emissions. As chairman of the Intelligence Committee in the 104th Congress and a member of the Appropriations Subcommittee on Foreign Operations, Senator Specter traveled extensively meeting with world leaders including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, and Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, and Pervez Musharraf; Jordan's Kings Hussein and Abdullah; and Egyptian President Hosni Mubarak. Strongly agreeing with Moshe Dayan's famous statement that we make peace with our enemies not our friends, he has met with Syria's Presidents Hafez al-Assad and Bashar al-Assad; the Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; and Venezuela President Hugo Chavez. From these meetings and his studies of foreign affairs since his undergraduate days at the University of Pennsylvania, where he majored in political science and international relations, Senator Specter has been a forceful advocate for aggressive diplomacy to solve international conflicts. He wrote, with staffer Chris Bradish, an article for the Washington Quarterly (Winter 2006-2007), outlining a blueprint for diplomatic initiatives in the Mideast with emphasis on bilateral negotiations with Iran and Syria. Similarly, he has urged bilateral, as well as multilateral, negotiations with North Korea. Early in his Senate career in 1982, he was among the first to call for a U.S./U.S.S.R. summit in a resolution which passed the Senate 90 to 8. He participated extensively with the Senate observers at the Geneva Arms Reduction talks in the 1980s and led the fight for the broad interpretation of the ABM Treaty. Senator Specter consistently supported appropriations to fight global AIDS and promoted worldwide support for underdeveloped countries including free trade agreements. Arlen Specter was elected to the U.S. Senate in 1980 and served five terms. In 2005, Senator Specter became Pennsylvania's longest serving U.S. Senator. He was a senior member of the Senate Judiciary, Appropriations, and Veterans Affairs Committees. Senator Specter was a member of the Senate Judiciary Committee since he came to the Senate. As such, he played an instrumental role in many of the Senate's most important issues, including the confirmations of Chief Justice John G. Roberts, Jr. and Justice Samuel Alito to serve as Associate Justice on the U.S. Supreme Court. Senator Specter also shepherded through the Judiciary Committee legislation on asbestos litigation reform to absolve what the Supreme Court once called an ''elephantine mass'' clogging our judicial system. Senator Specter has worked in a bipartisan fashion to reauthorize key provisions of the USA PATRIOT Act, an important tool in the U.S. war on terror. He has also authored legislation to help consumers better protect the privacy of their personal information in the face of recurrent data security breaches across the country. On the Judiciary Committee, Senator Specter built on his foundation as a lawyer and former district attorney. He was the author of the Armed Career Criminal Act, which has been praised for its long prison terms for repeat offenders, and the Terrorist Prosecution Act, which authorizes criminal actions in U.S. courts for assaulting, maiming, or murdering Americans anywhere in the world. As a senior member of the Appropriations Committee, Senator Specter was chairman of the Senate Appropriations Subcommittee on Labor, Health and Human Services, and Education. This subcommittee oversees Federal funding for the National Institutes of Health (NIH), the Centers for Disease Control, educational programs like Head Start, Pell grants, and GEAR-UP, and worker safety programs. Under his leadership, funding for education has increased by more than 130 percent. Senator Specter was also instrumental in doubling the budget for NIH, which has made major advances in curing Parkinson's, cancer, heart disease, and delaying the onset of Alzheimer's. Finally, Senator Specter is a strong proponent of stem cell research for the purposes of discovering knowledge that may lead to cures for these same ailments. Strengthening our Nation's security has been a longstanding priority of Senator Specter's. Thirty days after the terrorist attacks of September 11, 2001, Senator Specter drafted the legislation that established the Department of Homeland Security. While serving as chairman of the Senate Intelligence Committee in the 104th Congress, he authored the bill creating the Inspector General of the Central Intelligence Agency, marking the only reform legislation to emerge from the Iran-Contra affair. Senator Specter continues his strong advocacy for veterans, a passion born from the first veteran he ever knew, his father, Harry Specter, who was wounded in World War I. As a former chairman of the Veterans Committee, he pushed for just treatment for veterans and increased benefits. Working closely with the Secretary of Veterans Affairs, Senator Specter oversaw the opening of four new veterans outpatient clinics in Fayette, Northampton, Venango, and Warren Counties and passed legislation to create a new veterans cemetery in Southeastern Pennsylvania. A frequent visitor to all of Pennsylvania's 67 counties, Senator Specter places constituent service high on his priorities and has been instrumental on the Appropriations Committee in promoting Pennsylvania's interests in agriculture, high-technology, steel, coal, tourism, mass transit, highways, and military installations. In addition to tackling the major legislative business before the Senate, Senator Specter also engaged in a personal battle with Stage IV-B Hodgkin's lymphoma cancer in 2005 and 2008. In both cases he underwent nearly 5 months of chemotherapy, but still maintained all of his senatorial duties, including chairing hearings, voting, and brokering important legislative initiatives. In July 2008, Senator Specter received his last chemotherapy treatment and has since received a clean bill of health. Senator Specter was born to immigrant parents in Wichita, KS, and grew up in the small town of Russell, KS. He is a Phi Beta Kappa graduate of the University of Pennsylvania and served as an editor of the Yale Law Journal. He began his career in public service as an assistant Philadelphia district attorney. While serving in that position, he was named assistant counsel on the Warren Commission investigation into President Kennedy's assassination. Two years later, Senator Specter was elected district attorney of Philadelphia at the age of 35. Senator Specter lives in Philadelphia with his wife Joan. They have two sons, Shanin and Steve, and four grandchildren, Silvi, Perri, Lilli, and Hatti. Farewell to the Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, this is not a farewell address but, rather, a closing argument to a jury of my colleagues and the American people outlining my views on how the Senate and, with it, the Federal Government arrived at its current condition of partisan gridlock, and my suggestions on where we go from here on that pressing problem and the key issues of national and international importance. To make a final floor statement is a challenge. The Washington Post noted the poor attendance at my colleagues' farewell speeches earlier this month. That is really not surprising since there is hardly anyone ever on the Senate floor. The days of lively debate with many Members on the floor are long gone. Abuse of the Senate rules has pretty much stripped Senators of the right to offer amendments. The modern filibuster requires only a threat and no talking. So the Senate's activity for more than a decade has been the virtual continuous drone of a quorum call. But that is not the way it was when Senator Chris Dodd and I were privileged to enter the world's greatest deliberative body 30 years ago. Senators on both sides of the aisle engaged in collegial debate and found ways to find common ground on the Nation's pressing problems. When I attended my first Republican moderates luncheon, I met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, and I found my colleague John Heinz there. That is a far cry from later years when the moderates could fit into a telephone booth. On the other side of the aisle, I found many Democratic Senators willing to move to the center to craft legislation Date(s) Held: 2010-12-21, 2010-11-30, 2010-12-08, 2010-12-10, 2010-12-15, 2010-12-16, 2010-12-19, 2010-12-21, 2010-12-22 111th Congress, 2nd Session GPO Document Source: CHRG-111shrg64816 Superintendents of Documents ID: Y 4.AP 6/2 Related Items:

“TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation” Metadata:

  • Title: ➤  TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation
  • Author:
  • Language: English

“TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation” Subjects and Themes:

Edition Identifiers:

Downloads Information:

The book is available for download in "texts" format, the size of the file-s is: 42.15 Mbs, the file-s for this book were downloaded 920 times, the file-s went public at Sun Jan 08 2017.

Available formats:
Abbyy GZ - Animated GIF - Archive BitTorrent - DjVuTXT - Djvu XML - EPUB - HTML - Item Tile - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -

Related Links:

Online Marketplaces

Find TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation at online marketplaces:


6ERIC ED580933: Using Data Mining To Explore Why Community College Transfer Students Earn Bachelor's Degrees With Excess Credits. CCRC Working Paper No. 100

By

Community college transfer students encounter challenges progressing toward a bachelor's degree, leading to widespread transfer credit loss. This in turn may lower students' chances of credential completion and increase the time and costs for students, their families, and taxpayers. In this study we review three definitions of credit transfer inefficiency--"credit transferability," "credit applicability," and "excess credits among completers"--focusing on the last to examine why students who start at a community college and transfer to a four-year institution so often end up with excess credits that do not count toward a bachelor's degree. To shed light on credit transfer inefficiency, we examine the course-taking behaviors of community college transfer students who earn bachelor's degrees with numerous excess credits compared with transfer students who earn bachelor's degrees with few excess credits. We employ data-mining techniques to analyze student transcripts from two state systems, enabling us to examine a large number of variables that could explain the variation in students' excess credits at graduation. These variables include not only student demographics but also the types and timing of courses taken. Overall, we find more excess credits associated with several factors, including taking larger proportions of 100- and 200-level courses and smaller proportions of 300-level courses throughout students' progression toward completion, and taking 100-level courses in any subject--and specifically 100-level math courses--immediately after transferring to a four-year institution. Findings suggest that institutions could help students reduce credit transfer inefficiency by encouraging them to explore and choose a bachelor's degree major early on so they can take the required lower division (100- and 200-level) courses at the community college, thereby enabling them to take mostly upper division 300- and 400-level courses in their desired major field once they transfer to a four-year institution.

“ERIC ED580933: Using Data Mining To Explore Why Community College Transfer Students Earn Bachelor's Degrees With Excess Credits. CCRC Working Paper No. 100” Metadata:

  • Title: ➤  ERIC ED580933: Using Data Mining To Explore Why Community College Transfer Students Earn Bachelor's Degrees With Excess Credits. CCRC Working Paper No. 100
  • Author:
  • Language: English

“ERIC ED580933: Using Data Mining To Explore Why Community College Transfer Students Earn Bachelor's Degrees With Excess Credits. CCRC Working Paper No. 100” Subjects and Themes:

Edition Identifiers:

Downloads Information:

The book is available for download in "texts" format, the size of the file-s is: 27.28 Mbs, the file-s for this book were downloaded 27 times, the file-s went public at Wed Jul 27 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:

Online Marketplaces

Find ERIC ED580933: Using Data Mining To Explore Why Community College Transfer Students Earn Bachelor's Degrees With Excess Credits. CCRC Working Paper No. 100 at online marketplaces:


Source: The Open Library

The Open Library Search Results

Available books for downloads and borrow from The Open Library

1Working with no data

By

Book's cover

“Working with no data” Metadata:

  • Title: Working with no data
  • Authors:
  • Language: English
  • Number of Pages: Median: 264
  • Publisher: Eisenbrauns
  • Publish Date:
  • Publish Location: Winona Lake, Ind

“Working with no data” Subjects and Themes:

Edition Identifiers:

Access and General Info:

  • First Year Published: 1987
  • Is Full Text Available: Yes
  • Is The Book Public: No
  • Access Status: Borrowable

Online Access

Downloads Are Not Available:

The book is not public therefore the download links will not allow the download of the entire book, however, borrowing the book online is available.

Online Borrowing:

Online Marketplaces

Find Working with no data at online marketplaces:


Buy “Working With No Data” online:

Shop for “Working With No Data” on popular online marketplaces.